setitimer() does not exist in Unicos, despite of what
[p5sagit/p5-mst-13.2.git] / run.c
diff --git a/run.c b/run.c
index 054abfe..533beac 100644 (file)
--- a/run.c
+++ b/run.c
@@ -107,27 +107,26 @@ Perl_debop(pTHX_ OP *o)
     return 0;
 }
 
+#ifdef DEBUGGING
+
 STATIC CV*
-S_deb_curcv(I32 ix)
+S_deb_curcv(pTHX_ I32 ix)
 {
-#ifdef DEBUGGING
     PERL_CONTEXT *cx = &cxstack[ix];
     if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT)
         return cx->blk_sub.cv;
-    else if (CxTYPE(cx) == CXt_EVAL && PL_compcv)
-        /* XXX Should be PL_compcv? */
-        return Nullcv;
+    else if (CxTYPE(cx) == CXt_EVAL && !CxTRYBLOCK(cx))
+        return PL_compcv;
     else if (ix == 0 && PL_curstackinfo->si_type == PERLSI_MAIN)
         return PL_main_cv;
     else if (ix <= 0)
         return Nullcv;
     else
         return deb_curcv(ix - 1);
-#else
-    return Nullcv;
-#endif  /* DEBUGGING */
 }
 
+#endif  /* DEBUGGING */
+
 void
 Perl_watch(pTHX_ char **addr)
 {
@@ -139,16 +138,18 @@ Perl_watch(pTHX_ char **addr)
 #endif /* DEBUGGING */
 }
 
+#ifdef DEBUGGING
+
 STATIC void
 S_debprof(pTHX_ OP *o)
 {
-#ifdef DEBUGGING
     if (!PL_profiledata)
        Newz(000, PL_profiledata, MAXO, U32);
     ++PL_profiledata[o->op_type];
-#endif /* DEBUGGING */
 }
 
+#endif /* DEBUGGING */
+
 void
 Perl_debprofdump(pTHX)
 {