This is an automated email from the git hooks/post-receive script. gregoa pushed a commit to annotated tag release-0.009 in repository libclass-tiny-perl.
commit 931c59e59bcd29dfbc26e880283e552c4bb137ea Author: David Golden <dagol...@cpan.org> Date: Tue Sep 17 06:52:46 2013 -0400 fix won't stay shared bug --- Changes | 4 ++++ lib/Class/Tiny.pm | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Changes b/Changes index 5a824de..e8d4b02 100644 --- a/Changes +++ b/Changes @@ -2,6 +2,10 @@ Revision history for Class-Tiny {{$NEXT}} + [FIXED] + + - "won't stay shared" bug on older perls + 0.008 2013-09-08 09:49:46 America/New_York [FIXED] diff --git a/lib/Class/Tiny.pm b/lib/Class/Tiny.pm index f4ab17f..5411cf2 100644 --- a/lib/Class/Tiny.pm +++ b/lib/Class/Tiny.pm @@ -41,18 +41,19 @@ sub create_attributes { sub _gen_accessor { my ( $pkg, $name ) = @_; - my $default = $CLASS_ATTRIBUTES{$pkg}{$name}; + my $outer_default = $CLASS_ATTRIBUTES{$pkg}{$name}; my $sub = "sub $name { if (\@_ == 1) {"; - if ( defined $default && ref $default eq 'CODE' ) { + if ( defined $outer_default && ref $outer_default eq 'CODE' ) { $sub .= "if ( !exists \$_[0]{$name} ) { \$_[0]{$name} = \$default->(\$_[0]) }"; } - elsif ( defined $default ) { + elsif ( defined $outer_default ) { $sub .= "if ( !exists \$_[0]{$name} ) { \$_[0]{$name} = \$default }"; } $sub .= "return \$_[0]{$name} } else { return \$_[0]{$name}=\$_[1] } }"; - eval "package $pkg; $sub"; ## no critic + # default = outer_default avoids "won't stay shared" bug + eval "package $pkg; my \$default=\$outer_default; $sub"; ## no critic Carp::croak("Failed to generate attributes for $pkg: $@\n") if $@; } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libclass-tiny-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits