From: Stevan Little Date: Wed, 28 Dec 2005 17:15:02 +0000 (+0000) Subject: hmm X-Git-Tag: 0_10~5 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=494799c319ebf0a95aa8805a8e280fd5ed7651e4;p=gitmo%2FClass-C3.git hmm --- diff --git a/lib/Class/C3.pm b/lib/Class/C3.pm index 1af7d12..4ad6f4d 100644 --- a/lib/Class/C3.pm +++ b/lib/Class/C3.pm @@ -139,9 +139,9 @@ sub _remove_method_dispatch_table { no strict 'refs'; delete ${"${class}::"}{"()"} if $MRO{$class}->{has_overload_fallback}; foreach my $method (keys %{$MRO{$class}->{methods}}) { - delete ${"${class}::"}{$method} - if \&{"${class}::${method}"} eq - $MRO{$class}->{methods}->{$method}->{code}; + ${"${class}::"}{$method}{CODE} = undef + if defined ${"${class}::"}{$method}{CODE} && + ${"${class}::"}{$method}{CODE} eq $MRO{$class}->{methods}->{$method}->{code}; } } @@ -218,6 +218,7 @@ sub method { last unless $method_caller eq '(eval)'; } my @label = (split '::', $method_caller); + #my @label = (split '::', (caller(1))[3]); my $label = pop @label; my $caller = join '::' => @label; my $self = $_[0];