[svn:parrot] r43043 - branches/context_unify3/src/ops

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Dec 14 12:43:38 UTC 2009


Author: bacek
Date: Mon Dec 14 12:43:38 2009
New Revision: 43043
URL: https://trac.parrot.org/parrot/changeset/43043

Log:
Use pcc_prepare_call instead copy-pasted code.

Modified:
   branches/context_unify3/src/ops/core.ops

Modified: branches/context_unify3/src/ops/core.ops
==============================================================================
--- branches/context_unify3/src/ops/core.ops	Mon Dec 14 12:43:19 2009	(r43042)
+++ branches/context_unify3/src/ops/core.ops	Mon Dec 14 12:43:38 2009	(r43043)
@@ -429,12 +429,7 @@
     opcode_t *dest         = expr NEXT();
     PMC      *call_object  = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
 
-    interp->current_object = NULL;
-    interp->current_cont   = new_ret_continuation_pmc(interp, dest);
-    Parrot_pcc_init_context(interp, call_object, CURRENT_CONTEXT(interp));
-    Parrot_pcc_set_caller_ctx(interp, call_object, CURRENT_CONTEXT(interp));
-    Parrot_pcc_set_continuation(interp, call_object, interp->current_cont);
-    CURRENT_CONTEXT(interp) = call_object;
+    Parrot_pcc_prepare_call(interp, call_object, new_ret_continuation_pmc(interp, dest), NULL);
 
     dest                   = VTABLE_invoke(interp, p, dest);
 
@@ -446,12 +441,7 @@
     PMC * const p          = $1;
     PMC      *call_object  = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
 
-    interp->current_object = NULL;
-    interp->current_cont   = $2;
-    Parrot_pcc_init_context(interp, call_object, CURRENT_CONTEXT(interp));
-    Parrot_pcc_set_caller_ctx(interp, call_object, CURRENT_CONTEXT(interp));
-    Parrot_pcc_set_continuation(interp, call_object, interp->current_cont);
-    CURRENT_CONTEXT(interp) = call_object;
+    Parrot_pcc_prepare_call(interp, call_object, $2, NULL);
 
     dest = VTABLE_invoke(interp, p, dest);
     goto ADDRESS(dest);


More information about the parrot-commits mailing list