[svn:parrot] r40759 - in branches/context_pmc3: lib/Parrot/Pmc2c src/ops src/pmc

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Aug 24 11:16:17 UTC 2009


Author: bacek
Date: Mon Aug 24 11:16:16 2009
New Revision: 40759
URL: https://trac.parrot.org/parrot/changeset/40759

Log:
[core] Use Parrot_cx_inc|dec_recursion_depth instead of poking into
struct directly.

Modified:
   branches/context_pmc3/lib/Parrot/Pmc2c/PCCMETHOD.pm
   branches/context_pmc3/src/ops/core.ops
   branches/context_pmc3/src/ops/pic.ops
   branches/context_pmc3/src/pmc/sub.pmc

Modified: branches/context_pmc3/lib/Parrot/Pmc2c/PCCMETHOD.pm
==============================================================================
--- branches/context_pmc3/lib/Parrot/Pmc2c/PCCMETHOD.pm	Mon Aug 24 11:15:30 2009	(r40758)
+++ branches/context_pmc3/lib/Parrot/Pmc2c/PCCMETHOD.pm	Mon Aug 24 11:16:16 2009	(r40759)
@@ -429,7 +429,7 @@
 
     if (PObj_get_FLAGS(_ccont) & SUB_FLAG_TAILCALL) {
         PObj_get_FLAGS(_ccont) &= ~SUB_FLAG_TAILCALL;
-        --CONTEXT_FIELD(interp, _ctx, recursion_depth);
+        Parrot_cx_dec_recursion_depth(interp, _ctx);
         CONTEXT_FIELD(interp, _ctx, caller_ctx) = CONTEXT_FIELD(interp, _caller_ctx, caller_ctx);
         interp->current_args = NULL;
     }

Modified: branches/context_pmc3/src/ops/core.ops
==============================================================================
--- branches/context_pmc3/src/ops/core.ops	Mon Aug 24 11:15:30 2009	(r40758)
+++ branches/context_pmc3/src/ops/core.ops	Mon Aug 24 11:16:16 2009	(r40759)
@@ -555,7 +555,7 @@
     parrot_pass_args(interp, caller_ctx, ctx, src_indexes, dst_indexes, PARROT_PASS_PARAMS);
     if (PObj_get_FLAGS(ccont) & SUB_FLAG_TAILCALL) {
         PObj_get_FLAGS(ccont) &= ~SUB_FLAG_TAILCALL;
-        --CONTEXT_FIELD(interp, ctx, recursion_depth);
+        Parrot_cx_dec_recursion_depth(interp, ctx);
         CONTEXT_FIELD(interp, ctx, caller_ctx) = CONTEXT_FIELD(interp, caller_ctx, caller_ctx);
         interp->current_args = NULL;
     }

Modified: branches/context_pmc3/src/ops/pic.ops
==============================================================================
--- branches/context_pmc3/src/ops/pic.ops	Mon Aug 24 11:15:30 2009	(r40758)
+++ branches/context_pmc3/src/ops/pic.ops	Mon Aug 24 11:16:16 2009	(r40759)
@@ -162,7 +162,7 @@
         ccont = CONTEXT_FIELD(interp, ctx, current_cont);
         if (PObj_get_FLAGS(ccont) & SUB_FLAG_TAILCALL) {
             PObj_get_FLAGS(ccont) &= ~SUB_FLAG_TAILCALL;
-            --CONTEXT_FIELD(interp, ctx, recursion_depth);
+            Parrot_cx_dec_recursion_depth(interp, ctx);
             CONTEXT_FIELD(interp, ctx, caller_ctx) = CONTEXT_FIELD(interp, caller_ctx, caller_ctx);
             interp->current_args = NULL;
         }

Modified: branches/context_pmc3/src/pmc/sub.pmc
==============================================================================
--- branches/context_pmc3/src/pmc/sub.pmc	Mon Aug 24 11:15:30 2009	(r40758)
+++ branches/context_pmc3/src/pmc/sub.pmc	Mon Aug 24 11:16:16 2009	(r40759)
@@ -288,7 +288,7 @@
         CONTEXT_FIELD(interp, context, current_cont) = ccont;
 
         /* check recursion/call depth */
-        if (++CONTEXT_FIELD(interp, context, recursion_depth) > INTERP->recursion_limit)
+        if (Parrot_cx_inc_recursion_depth(INTERP, context) > INTERP->recursion_limit)
             Parrot_ex_throw_from_c_args(INTERP, next, CONTROL_ERROR,
                     "maximum recursion depth exceeded");
 
@@ -373,7 +373,7 @@
             &&     pc[2] == PARROT_OP_get_params_pc))) {
 
                 /* TODO keep it or resize it */
-                --CONTEXT_FIELD(interp, context, recursion_depth);
+                Parrot_cx_dec_recursion_depth(INTERP, context);
 
                 PObj_get_FLAGS(ccont) &= ~SUB_FLAG_TAILCALL;
                 CONTEXT_FIELD(interp, context, caller_ctx) = CONTEXT_FIELD(interp, caller_ctx, caller_ctx);


More information about the parrot-commits mailing list