From: Peter Rabbitson <ribasushi@cpan.org>
Date: Thu, 25 Nov 2010 18:14:34 +0000 (+0000)
Subject: Minor refactor to allow for braindead CDBICompat code (no methname passed in)
X-Git-Tag: v0.09009~2
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=8702466ace59add7338b034c69fa79af3a735c07;p=p5sagit%2FClass-Accessor-Grouped.git

Minor refactor to allow for braindead CDBICompat code (no methname passed in)
---

diff --git a/lib/Class/Accessor/Grouped.pm b/lib/Class/Accessor/Grouped.pm
index 653ee53..375a4eb 100644
--- a/lib/Class/Accessor/Grouped.pm
+++ b/lib/Class/Accessor/Grouped.pm
@@ -621,17 +621,18 @@ $gen_accessor = sub {
     $class = $c;
   }
 
-  my $fq_name = "${class}::${methname}";
 
   # When installing an XSA simple accessor, we need to make sure we are not
   # short-circuiting a (compile or runtime) get_simple/set_simple override.
   # What we do here is install a lazy first-access check, which will decide
   # the ultimate coderef being placed in the accessor slot
   if ($USE_XS and $group eq 'simple') {
+    my $fq_name = "${class}::${methname}";
     ($accessor_maker_cache->{xs}{$field}{$type}{$fq_name} ||= do {
       die sprintf( "Class::XSAccessor requested but not available:\n%s\n", __CAG_NO_CXSA )
         if __CAG_NO_CXSA;
 
+
       sub { sub {
         my $current_class = Scalar::Util::blessed( $_[0] ) || $_[0];
 
@@ -688,7 +689,7 @@ $gen_accessor = sub {
 
     no warnings 'redefine';
     local $@ if __CAG_UNSTABLE_DOLLARAT;
-    eval "sub ${fq_name}{$src}";
+    eval "sub ${class}::${methname}{$src}";
 
     undef;  # so that no attempt will be made to install anything
   }