1 --- DBM-Deep-0.983/lib/DBM/Deep.pm 2006-04-10 21:59:17.000000000 -0500
2 +++ DBM-Deep-0.983_copy/lib/DBM/Deep.pm 2006-06-15 10:15:07.569349000 -0500
4 tie %$self, $class, %$args;
7 - return bless $self, $class;
9 + $self->_set_ref($self);
18 + bless $value, 'DBM::Deep::Hash';
19 + $value->_set_ref($value);
21 elsif ($r eq 'ARRAY') {
27 + bless $value, 'DBM::Deep::Array';
28 + $value->_set_ref($value);
33 # If value is a hash or array, return new DBM::Deep object with correct offset
35 if (($signature eq TYPE_HASH) || ($signature eq TYPE_ARRAY)) {
36 - my $obj = DBM::Deep->new(
37 + my $obj = $self->_get_ref($subloc);
38 + $obj ||= DBM::Deep->new(
40 base_offset => $subloc,
42 @@ -1221,6 +1228,20 @@
43 return $self->{base_offset};
47 + my $self = $_[0]->_get_self;
48 + my $base_offset = $self->_base_offset;
49 + my $refs = $self->_root->{refs};
50 + $refs->{$base_offset} = $_[1];
51 + Scalar::Util::weaken $refs->{$base_offset};
55 + my $self = $_[0]->_get_self;
56 + my $refs = $self->_root->{refs};
57 + return $refs->{ $_[1] };
62 # Get last error string, or undef if no error
64 filter_fetch_value => undef,