Added dep on 5.6.0 and started breakout of request_space()/release_space()
[dbsrgits/DBM-Deep.git] / lib / DBM / Deep / Engine.pm
index 72d0690..d49e4e4 100644 (file)
@@ -107,6 +107,9 @@ sub setup_fh {
 
     $self->open( $obj ) if !defined $obj->_fh;
 
+    $obj->{base_offset} = length( SIG_FILE )
+        unless defined $obj->{base_offset};
+
     #XXX We have to make sure we don't mess up when autoflush isn't turned on
     unless ( $obj->_root->{inode} ) {
         my @stats = stat($obj->_fh);
@@ -174,6 +177,9 @@ sub open {
         return 1;
     }
 
+    $obj->{base_offset} = $bytes_read
+        unless defined $obj->{base_offset};
+
     ##
     # Check signature was valid
     ##
@@ -242,6 +248,8 @@ sub load_tag {
     my $self = shift;
     my ($obj, $offset) = @_;
 
+#    print join(':',map{$_||''}caller(1)), $/;
+
     my $fh = $obj->_fh;
 
     seek($fh, $offset + $obj->_root->{file_offset}, SEEK_SET);
@@ -762,7 +770,11 @@ sub traverse_index {
         for (my $idx = $start; $idx < (2**8); $idx++) {
             my $subloc = unpack(
                 $self->{long_pack},
-                substr($content, $idx * $self->{long_size}, $self->{long_size}),
+                substr(
+                    $content,
+                    $idx * $self->{long_size},
+                    $self->{long_size},
+                ),
             );
 
             if ($subloc) {