tests, little things, 0.07 release
[gitmo/Class-C3-XS.git] / XS.xs
diff --git a/XS.xs b/XS.xs
index f120168..19340c2 100644 (file)
--- a/XS.xs
+++ b/XS.xs
@@ -271,8 +271,8 @@ XS(XS_Class_C3_XS_nextcan)
 {
     dVAR; dXSARGS;
 
-    SV* self;
-    I32 throw_nomethod;
+    SV* self = ST(0);
+    const I32 throw_nomethod = SvIVX(ST(1));
     register I32 cxix;
     register const PERL_CONTEXT *ccstack = cxstack;
     const PERL_SI *top_si = PL_curstackinfo;
@@ -297,9 +297,6 @@ XS(XS_Class_C3_XS_nextcan)
     HE* cache_entry;
     SV* cachekey;
 
-    self = ST(0);
-    throw_nomethod = SvIVX(ST(1));
-
     SP -= items;
 
     if(sv_isobject(self))
@@ -314,7 +311,7 @@ XS(XS_Class_C3_XS_nextcan)
         Perl_croak(aTHX_ "Can't use anonymous symbol table for method lookup");
 
     cxix = __dopoptosub_at(cxstack, cxstack_ix);
-    cxix = __dopoptosub_at(ccstack, cxix - 1);
+    cxix = __dopoptosub_at(ccstack, cxix - 1); /* skip next::method, etc */
 
     /* This block finds the contextually-enclosing fully-qualified subname,
        much like looking at (caller($i))[3] until you find a real sub that