X-Git-Url: https://git.decadent.org.uk/gitweb/?p=maypole.git;a=blobdiff_plain;f=debian%2Fpatches%2F109_handle-clone.diff;fp=debian%2Fpatches%2F109_handle-clone.diff;h=70258d5968bc24b4c91e27c13c6a383727b1c0f5;hp=0000000000000000000000000000000000000000;hb=d813b3413bbd58789200c2ef02c7386e33cabe00;hpb=2f489d7ce7f039b3d09ad98b6abf0bd4103a654e diff --git a/debian/patches/109_handle-clone.diff b/debian/patches/109_handle-clone.diff new file mode 100644 index 0000000..70258d5 --- /dev/null +++ b/debian/patches/109_handle-clone.diff @@ -0,0 +1,28 @@ +--- trunk.orig/lib/Maypole/Model/Base.pm ++++ trunk/lib/Maypole/Model/Base.pm +@@ -12,14 +12,23 @@ + 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 ) = @_;