Fixed problem with second-level values being overwritten when accessed.
[dbsrgits/DBM-Deep.git] / lib / DBM / Deep / Sector / DBI.pm
index ed00cbf..a150cc6 100644 (file)
@@ -37,10 +37,18 @@ sub load {
         });
     }
     elsif ( $type eq 'datas' ) {
-        return DBM::Deep::Sector::DBI::Scalar->new({
+        my $sector = DBM::Deep::Sector::DBI::Scalar->new({
             engine => $engine,
             offset => $offset,
         });
+
+        if ( $sector->{data_type} eq 'R' ) {
+            return $self->load(
+                $engine, $sector->{value}, 'refs',
+            );
+        }
+
+        return $sector;
     }
 
     DBM::Deep->_throw_error( "'$offset': Don't know what to do with type '$type'" );