X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FModel%2FBase.pm;h=450b760fc1447f9a79db7a94bbae0d0aeef87f8d;hb=abaae7b29361db768c59f0948815ef07b454bb9b;hp=b4f75c8a0824df25d0238128aeba03e13d518eeb;hpb=83f49b1a6dd37085046213013288504696d5483e;p=maypole.git diff --git a/lib/Maypole/Model/Base.pm b/lib/Maypole/Model/Base.pm index b4f75c8..450b760 100644 --- a/lib/Maypole/Model/Base.pm +++ b/lib/Maypole/Model/Base.pm @@ -7,19 +7,26 @@ use attributes (); # don't know why this is a global - drb our %remember; -sub MODIFY_CODE_ATTRIBUTES -{ +sub MODIFY_CODE_ATTRIBUTES { shift; # class name not used my ($coderef, @attrs) = @_; - - $remember{$coderef} = \@attrs; - + $remember{$coderef} = [$coderef, \@attrs]; + # previous version took care to return an empty array, not sure why, # but shall cargo cult it until know better return; } -sub FETCH_CODE_ATTRIBUTES { @{ $remember{$_[1]} || [] } } +sub FETCH_CODE_ATTRIBUTES { @{ $remember{$_[1]}->[1] || [] } } + +sub CLONE { + # re-hash %remember + for my $key (keys %remember) { + my $value = delete $remember{$key}; + $key = $value->[0]; + $remember{$key} = $value; + } +} sub process { my ( $class, $r ) = @_;