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

Reply via email to