diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2009-04-09 09:56:39 +0200 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2009-04-09 09:56:39 +0200 |
commit | 5929274fd6ebc76e42a2d2e13c4ababb594a4a5a (patch) | |
tree | 3b1ad0eb2b9a1bd1e8505da73c10d517578e63a0 /lib | |
parent | 932dfdf14c16835fc3ab6ba0cb0dab9254dfd017 (diff) | |
parent | 082b74eb74586857de13c8c1c1d19f6f3a2da06e (diff) | |
download | perl-5929274fd6ebc76e42a2d2e13c4ababb594a4a5a.tar.gz |
Merge commit 'rafl/blead' into blead
Diffstat (limited to 'lib')
-rw-r--r-- | lib/NEXT.pm | 18 | ||||
-rw-r--r-- | lib/NEXT/Changes | 115 |
2 files changed, 61 insertions, 72 deletions
diff --git a/lib/NEXT.pm b/lib/NEXT.pm index dc3127763b..053ee1097d 100644 --- a/lib/NEXT.pm +++ b/lib/NEXT.pm @@ -1,5 +1,5 @@ package NEXT; -$VERSION = '0.61'; +$VERSION = '0.62'; use Carp; use strict; use overload (); @@ -61,11 +61,19 @@ sub NEXT::ELSEWHERE::buildAUTOLOAD last if shift @forebears eq $caller_class } no strict 'refs'; - @{$NEXT::NEXT{$key,$wanted_method}} = - map { *{"${_}::$caller_method"}{CODE}||() } @forebears + @{$NEXT::NEXT{$key,$wanted_method}} = + map { + my $stash = \%{"${_}::"}; + ($stash->{$caller_method} && (*{$stash->{$caller_method}}{CODE})) + ? *{$stash->{$caller_method}}{CODE} + : () } @forebears unless $wanted_method eq 'AUTOLOAD'; - @{$NEXT::NEXT{$key,$wanted_method}} = - map { (*{"${_}::AUTOLOAD"}{CODE}) ? "${_}::AUTOLOAD" : ()} @forebears + @{$NEXT::NEXT{$key,$wanted_method}} = + map { + my $stash = \%{"${_}::"}; + ($stash->{AUTOLOAD} && (*{$stash->{AUTOLOAD}}{CODE})) + ? "${_}::AUTOLOAD" + : () } @forebears unless @{$NEXT::NEXT{$key,$wanted_method}||[]}; $NEXT::SEEN->{$key,*{$caller}{CODE}}++; } diff --git a/lib/NEXT/Changes b/lib/NEXT/Changes index fc34098778..47b5693d9e 100644 --- a/lib/NEXT/Changes +++ b/lib/NEXT/Changes @@ -1,69 +1,50 @@ Revision history for Perl extension NEXT.pm. -0.01 Tue Apr 10 18:27:00 EST 2001 - - - original version - - -0.01 Thu Apr 12 17:06:49 2001 - - - Documented the difference between NEXT and SUPER (thanks Ken) - - - -0.01 Thu Apr 12 17:15:42 2001 - - - -0.02 Mon Sep 3 07:52:27 2001 - - - Fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS (thanks Leonid) - - - Changed licence for inclusion in core distribution - - -0.50 Fri Nov 16 11:20:40 2001 - - - Added a $VERSION (oops!) - - - Fixed handling of diamond patterns (thanks Paul) - - - Added NEXT::ACTUAL to require existence of next method (thanks Paul) - - - Added NEXT::UNSEEN to avoid calling multiply inherited - methods twice (thanks Paul) - - - Re-fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS to be - consistent with more useful SUPER:: behaviour - - - Corified tests - - -0.51 Tue Jul 29 23:09:48 2003 - - - Fixed NEXT::UNSEEN bug under diamond inheritance (thanks Dan - and Alan) - - - Moved &ancestors out of NEXT class in case anyone ever - calls NEXT::ancestors - - - Replaced UNSEEN with DISTINCT (but left UNSEEN operational - for backwards compatibility) - - -0.52 Wed Jul 30 21:06:59 2003 - - - Refixed NEXT::UNSEEN bug under diamond inheritance - - -0.53 Tue Aug 12 10:53:25 2003 - - - Re-re-fixed NEXT::UNSEEN bug under diamond inheritance - - -0.60 Wed Aug 13 03:55:33 2003 - - - Re-re-re-fixed NEXT::UNSEEN bug under diamond inheritance - (Note to self: don't code whilst on vacation!) - - - Implemented and documented EVERY functionality +0.62 Wed Apr 8 03:27:25 2009 + - Be less aggressive when looking at the symbol table to find + methods. This prevents "used only once" warnings on 5.10. + +0.61 Tue Mar 24 02:50:26 2009 + - Pod tweaks (Alan Ferrency). + - Fix a bug when using NEXT from within an eval block (Dave Rolsky). + - Fix some pod typos (Piotr Fusik). + - Fix a bug when using NEXT within overloaded stringification + (Marcel GrĂ¼nauer). + - Make NEXT work with AUTOLOAD (Damian Conway). + +0.60 Wed Aug 13 03:55:33 2003 + - Re-re-re-fixed NEXT::UNSEEN bug under diamond inheritance + (Note to self: don't code whilst on vacation!) + - Implemented and documented EVERY functionality + +0.53 Tue Aug 12 10:53:25 2003 + - Re-re-fixed NEXT::UNSEEN bug under diamond inheritance + +0.52 Wed Jul 30 21:06:59 2003 + - Refixed NEXT::UNSEEN bug under diamond inheritance + +0.51 Tue Jul 29 23:09:48 2003 + - Fixed NEXT::UNSEEN bug under diamond inheritance (thanks Dan + and Alan) + - Moved &ancestors out of NEXT class in case anyone ever + calls NEXT::ancestors + - Replaced UNSEEN with DISTINCT (but left UNSEEN operational + for backwards compatibility) + +0.50 Fri Nov 16 11:20:40 2001 + - Added a $VERSION (oops!) + - Fixed handling of diamond patterns (thanks Paul) + - Added NEXT::ACTUAL to require existence of next method (thanks Paul) + - Added NEXT::UNSEEN to avoid calling multiply inherited + methods twice (thanks Paul) + - Re-fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS to be + consistent with more useful SUPER:: behaviour + - Corified tests + +0.02 Mon Sep 3 07:52:27 2001 + - Fixed setting of $AUTOLOAD in NEXT'd AUTOLOADS (thanks Leonid) + - Changed licence for inclusion in core distribution + - Documented the difference between NEXT and SUPER (thanks Ken) + +0.01 Tue Apr 10 18:27:00 EST 2001 + - original version |