]> git.decadent.org.uk Git - maypole.git/blob - debian/patches/109_handle-clone.diff
70258d5968bc24b4c91e27c13c6a383727b1c0f5
[maypole.git] / debian / patches / 109_handle-clone.diff
1 --- trunk.orig/lib/Maypole/Model/Base.pm
2 +++ trunk/lib/Maypole/Model/Base.pm
3 @@ -12,14 +12,23 @@
4      shift; # class name not used
5      my ($coderef, @attrs) = @_;
6      
7 -    $remember{$coderef} = \@attrs; 
8 +    $remember{$coderef} = [$coderef, \@attrs];
9      
10      # previous version took care to return an empty array, not sure why, 
11      # but shall cargo cult it until know better
12      return; 
13  }
14  
15 -sub FETCH_CODE_ATTRIBUTES { @{ $remember{$_[1]} || [] } }
16 +sub FETCH_CODE_ATTRIBUTES { @{ $remember{$_[1]}->[1] || [] } }
17 +
18 +sub CLONE {
19 +    # re-hash %remember
20 +    for my $key (keys %remember) {
21 +       my $value = delete $remember{$key};
22 +       $key = $value->[0];
23 +       $remember{$key} = $value;
24 +    }
25 +}
26  
27  sub process {
28      my ( $class, $r ) = @_;