+ my $n = scalar keys %gone;
+ next unless $n;
+ if ($n > 1) {
+ warn "BUG: multiple articles linked to <$mid>\n",
+ join(',', sort keys %gone), "\n";
+ }
+ foreach my $num (keys %gone) {
+ my ($smsg, $orig) = @{$gone{$num}};
+ $mm->num_delete($num);
+ # $removed should only be set once assuming
+ # no bugs in our deduplication code:
+ $removed = $smsg;
+ my $oid = $smsg->{blob};
+ if ($purge) {
+ $purge->{$oid} = 1;
+ } else {
+ ($mark, undef) = $im->remove($orig, $cmt_msg);
+ }
+ $orig = undef;
+ foreach my $idx (@$parts) {
+ $idx->remote_remove($oid, $mid);
+ }
+ $self->{over}->remove_oid($oid, $mid);
+ }