# (XRFMFB - 1) * 512 + XRFMFP
# why do i have to do XRFMFP % 1024 ?
- my $blk_off = (($XRFMFB - 1) * 512) + ($XRFMFP % 1024);
+ my $blk_off = (($XRFMFB - 1) * 512) + ($XRFMFP % 512);
print STDERR "## pointer: $pointer XRFMFB: $XRFMFB XRFMFP: $XRFMFP offset: $blk_off\n" if ($self->{'debug'});
print STDERR "## offset for rowid $value is $blk_off (blk $XRFMFB off $XRFMFP)\n" if ($self->{debug});
if ($value!=$mfn) {
- carp "Error: MFN ".$mfn." not found in MST(".$value.")";
- #return;
+ if ($value == 0) {
+ print STDERR "## record $mfn is physically deleted\n" if ($self->{debug});
+ $self->{deleted} = $mfn;
+ return;
+ }
+
+ carp "Error: MFN ".$mfn." not found in MST file, found $value";
+ return;
}
read($self->{'fileMST'}, $buff, 14);