331 |
# (XRFMFB - 1) * 512 + XRFMFP |
# (XRFMFB - 1) * 512 + XRFMFP |
332 |
# why do i have to do XRFMFP % 1024 ? |
# why do i have to do XRFMFP % 1024 ? |
333 |
|
|
334 |
my $blk_off = (($XRFMFB - 1) * 512) + ($XRFMFP % 1024); |
my $blk_off = (($XRFMFB - 1) * 512) + ($XRFMFP % 512); |
335 |
|
|
336 |
print STDERR "## pointer: $pointer XRFMFB: $XRFMFB XRFMFP: $XRFMFP offset: $blk_off\n" if ($self->{'debug'}); |
print STDERR "## pointer: $pointer XRFMFB: $XRFMFB XRFMFP: $XRFMFP offset: $blk_off\n" if ($self->{'debug'}); |
337 |
|
|
345 |
print STDERR "## offset for rowid $value is $blk_off (blk $XRFMFB off $XRFMFP)\n" if ($self->{debug}); |
print STDERR "## offset for rowid $value is $blk_off (blk $XRFMFB off $XRFMFP)\n" if ($self->{debug}); |
346 |
|
|
347 |
if ($value!=$mfn) { |
if ($value!=$mfn) { |
348 |
carp "Error: MFN ".$mfn." not found in MST(".$value.")"; |
if ($value == 0) { |
349 |
#return; |
print STDERR "## record $mfn is physically deleted\n" if ($self->{debug}); |
350 |
|
$self->{deleted} = $mfn; |
351 |
|
return; |
352 |
|
} |
353 |
|
|
354 |
|
carp "Error: MFN ".$mfn." not found in MST file, found $value"; |
355 |
|
return; |
356 |
} |
} |
357 |
|
|
358 |
read($self->{'fileMST'}, $buff, 14); |
read($self->{'fileMST'}, $buff, 14); |