[svn:parrot] r43413 - in trunk: include/parrot src/call

bacek at svn.parrot.org bacek at svn.parrot.org
Sat Jan 9 22:23:27 UTC 2010


Author: bacek
Date: Sat Jan  9 22:23:25 2010
New Revision: 43413
URL: https://trac.parrot.org/parrot/changeset/43413

Log:
Expose Parrot_pcc_do_run_ops.

Modified:
   trunk/include/parrot/call.h
   trunk/src/call/pcc.c

Modified: trunk/include/parrot/call.h
==============================================================================
--- trunk/include/parrot/call.h	Sat Jan  9 10:27:08 2010	(r43412)
+++ trunk/include/parrot/call.h	Sat Jan  9 22:23:25 2010	(r43413)
@@ -53,6 +53,11 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 PARROT_EXPORT
+INTVAL Parrot_pcc_do_run_ops(PARROT_INTERP, ARGIN(PMC *sub_obj))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_EXPORT
 void Parrot_pcc_invoke_from_sig_object(PARROT_INTERP,
     ARGIN(PMC *sub_obj),
     ARGIN(PMC *call_object))
@@ -93,6 +98,9 @@
         __attribute__nonnull__(4)
         FUNC_MODIFIES(*method_name);
 
+#define ASSERT_ARGS_Parrot_pcc_do_run_ops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(sub_obj))
 #define ASSERT_ARGS_Parrot_pcc_invoke_from_sig_object \
      __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \

Modified: trunk/src/call/pcc.c
==============================================================================
--- trunk/src/call/pcc.c	Sat Jan  9 10:27:08 2010	(r43412)
+++ trunk/src/call/pcc.c	Sat Jan  9 22:23:25 2010	(r43413)
@@ -253,6 +253,24 @@
 
 /*
 
+=item C<INTVAL Parrot_pcc_do_run_ops(PARROT_INTERP, PMC *sub_obj)>
+
+Check if current object require running ops. Used in tailcall for updating
+RetContinuation.
+
+=cut
+
+*/
+PARROT_EXPORT
+INTVAL
+Parrot_pcc_do_run_ops(PARROT_INTERP, ARGIN(PMC *sub_obj))
+{
+    ASSERT_ARGS(Parrot_pcc_do_run_ops)
+    return do_run_ops(interp, sub_obj);
+}
+
+/*
+
 =item C<void Parrot_pcc_invoke_from_sig_object(PARROT_INTERP, PMC *sub_obj, PMC
 *call_object)>
 


More information about the parrot-commits mailing list