[svn:parrot] r41916 - in branches/pcc_reapply: include/parrot src/call
bacek at svn.parrot.org
bacek at svn.parrot.org
Sun Oct 18 01:42:39 UTC 2009
Author: bacek
Date: Sun Oct 18 01:42:39 2009
New Revision: 41916
URL: https://trac.parrot.org/parrot/changeset/41916
Log:
Expose parse_singature_string. It will be required for fixing Continuation.invoke
Modified:
branches/pcc_reapply/include/parrot/call.h
branches/pcc_reapply/src/call/args.c
Modified: branches/pcc_reapply/include/parrot/call.h
==============================================================================
--- branches/pcc_reapply/include/parrot/call.h Sun Oct 18 01:02:07 2009 (r41915)
+++ branches/pcc_reapply/include/parrot/call.h Sun Oct 18 01:42:39 2009 (r41916)
@@ -335,6 +335,18 @@
FUNC_MODIFIES(* parent)
FUNC_MODIFIES(* tailcall);
+PARROT_CAN_RETURN_NULL
+void Parrot_pcc_parse_signature_string(PARROT_INTERP,
+ ARGIN(STRING *signature),
+ ARGMOD(PMC **arg_flags),
+ ARGMOD(PMC **return_flags))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ __attribute__nonnull__(4)
+ FUNC_MODIFIES(*arg_flags)
+ FUNC_MODIFIES(*return_flags);
+
#define ASSERT_ARGS_Parrot_pcc_build_sig_object_from_op \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
@@ -378,6 +390,12 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(parent) \
, PARROT_ASSERT_ARG(tailcall))
+#define ASSERT_ARGS_Parrot_pcc_parse_signature_string \
+ __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(signature) \
+ , PARROT_ASSERT_ARG(arg_flags) \
+ , PARROT_ASSERT_ARG(return_flags))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/call/args.c */
Modified: branches/pcc_reapply/src/call/args.c
==============================================================================
--- branches/pcc_reapply/src/call/args.c Sun Oct 18 01:02:07 2009 (r41915)
+++ branches/pcc_reapply/src/call/args.c Sun Oct 18 01:42:39 2009 (r41916)
@@ -2299,6 +2299,30 @@
/*
+=item C<void Parrot_pcc_parse_signature_string(PARROT_INTERP, STRING *signature,
+PMC **arg_flags, PMC **return_flags)>
+
+Parses a signature string and creates call and return signature integer
+arrays. The two integer arrays should be passed in as references to a
+PMC.
+
+=cut
+
+*/
+
+PARROT_CAN_RETURN_NULL
+void
+Parrot_pcc_parse_signature_string(PARROT_INTERP, ARGIN(STRING *signature),
+ ARGMOD(PMC **arg_flags), ARGMOD(PMC **return_flags))
+{
+ const char *s = Parrot_string_cstring(interp, signature);
+ *arg_flags = PMCNULL;
+ *return_flags = PMCNULL;
+ parse_signature_string(interp, s, arg_flags, return_flags);
+}
+
+/*
+
=item C<void Parrot_pcc_merge_signature_for_tailcall(PARROT_INTERP, PMC *
parent, PMC * tailcall)>
More information about the parrot-commits
mailing list