Back out the {ENTER,LEAVE}_with_name("sub") part of d343c3ef45381352 for now.
Nicholas Clark [Thu, 14 Jan 2010 15:37:05 +0000 (15:37 +0000)]
It's conflicting with an established pattern in XS code, working around the
inability of the XS SCOPE: keyword to actually provide anything useful.
The minor amount of extra debugging it gives here is not worth the external
trouble it causes.

Revisit this once we can provide a meaningful option to disable the
ENTER/LEAVE around XSUBs.

pp_ctl.c
pp_hot.c

index c181d0f..81a942f 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -1881,7 +1881,7 @@ PP(pp_dbstate)
            /* don't do recursive DB::DB call */
            return NORMAL;
 
-       ENTER_with_name("sub");
+       ENTER;
        SAVETMPS;
 
        SAVEI32(PL_debug);
@@ -1896,7 +1896,7 @@ PP(pp_dbstate)
            (void)(*CvXSUB(cv))(aTHX_ cv);
            CvDEPTH(cv)--;
            FREETMPS;
-           LEAVE_with_name("sub");
+           LEAVE;
            return NORMAL;
        }
        else {
@@ -2559,7 +2559,7 @@ PP(pp_goto)
                PUSHMARK(mark);
                PUTBACK;
                (void)(*CvXSUB(cv))(aTHX_ cv);
-               LEAVE_with_name("sub");
+               LEAVE;
                return retop;
            }
            else {
index a8aa4ba..3371e88 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2481,7 +2481,7 @@ PP(pp_leavesub)
     }
     PUTBACK;
 
-    LEAVE_with_name("sub");
+    LEAVE;
     cxstack_ix--;
     POPSUB(cx,sv);     /* Stack values are safe: release CV and @_ ... */
     PL_curpm = newpm;  /* ... and pop $1 et al */
@@ -2542,7 +2542,7 @@ PP(pp_leavesublv)
         * the refcounts so the caller gets a live guy. Cannot set
         * TEMP, so sv_2mortal is out of question. */
        if (!CvLVALUE(cx->blk_sub.cv)) {
-           LEAVE_with_name("sub");
+           LEAVE;
            cxstack_ix--;
            POPSUB(cx,sv);
            PL_curpm = newpm;
@@ -2557,7 +2557,7 @@ PP(pp_leavesublv)
                 * of a tied hash or array */
                if (SvFLAGS(TOPs) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY) &&
                    !(SvRMAGICAL(TOPs) && mg_find(TOPs, PERL_MAGIC_tiedelem))) {
-                   LEAVE_with_name("sub");
+                   LEAVE;
                    cxstack_ix--;
                    POPSUB(cx,sv);
                    PL_curpm = newpm;
@@ -2573,7 +2573,7 @@ PP(pp_leavesublv)
                }
            }
            else {                      /* Should not happen? */
-               LEAVE_with_name("sub");
+               LEAVE;
                cxstack_ix--;
                POPSUB(cx,sv);
                PL_curpm = newpm;
@@ -2590,7 +2590,7 @@ PP(pp_leavesublv)
                    && SvFLAGS(*mark) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY)) {
                    /* Might be flattened array after $#array =  */
                    PUTBACK;
-                   LEAVE_with_name("sub");
+                   LEAVE;
                    cxstack_ix--;
                    POPSUB(cx,sv);
                    PL_curpm = newpm;
@@ -2645,7 +2645,7 @@ PP(pp_leavesublv)
     }
     PUTBACK;
 
-    LEAVE_with_name("sub");
+    LEAVE;
     cxstack_ix--;
     POPSUB(cx,sv);     /* Stack values are safe: release CV and @_ ... */
     PL_curpm = newpm;  /* ... and pop $1 et al */
@@ -2675,7 +2675,7 @@ PP(pp_entersub)
            cv = sv_2cv(sv, &stash, &gv, 0);
        }
        if (!cv) {
-           ENTER_with_name("sub");
+           ENTER;
            SAVETMPS;
            goto try_autoload;
        }
@@ -2729,7 +2729,7 @@ PP(pp_entersub)
        break;
     }
 
-    ENTER_with_name("sub");
+    ENTER;
     SAVETMPS;
 
   retry:
@@ -2889,7 +2889,7 @@ try_autoload:
                *(PL_stack_base + markix) = *PL_stack_sp;
            PL_stack_sp = PL_stack_base + markix;
        }
-       LEAVE_with_name("sub");
+       LEAVE;
        return NORMAL;
     }
 }