[svn:parrot] r44952 - branches/pcc_hackathon_6Mar10/src/call
bacek at svn.parrot.org
bacek at svn.parrot.org
Tue Mar 16 07:31:33 UTC 2010
Author: bacek
Date: Tue Mar 16 07:31:33 2010
New Revision: 44952
URL: https://trac.parrot.org/parrot/changeset/44952
Log:
Save/restore old call_object in invoke_sub.
Modified:
branches/pcc_hackathon_6Mar10/src/call/pcc.c
Modified: branches/pcc_hackathon_6Mar10/src/call/pcc.c
==============================================================================
--- branches/pcc_hackathon_6Mar10/src/call/pcc.c Tue Mar 16 07:06:17 2010 (r44951)
+++ branches/pcc_hackathon_6Mar10/src/call/pcc.c Tue Mar 16 07:31:33 2010 (r44952)
@@ -77,7 +77,9 @@
ASSERT_ARGS(Parrot_pcc_invoke_sub_from_c_args)
PMC *call_obj;
va_list args;
- char *arg_sig, *ret_sig;
+ char *arg_sig, *ret_sig;
+ PMC *old_call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
+
Parrot_pcc_split_signature_string(interp, sig, &arg_sig, &ret_sig);
va_start(args, sig);
@@ -89,7 +91,7 @@
Parrot_pcc_fill_params_from_varargs(interp, call_obj, ret_sig, &args,
PARROT_ERRORS_RESULT_COUNT_FLAG);
va_end(args);
-
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), old_call_obj);
}
@@ -226,6 +228,7 @@
PMC *sub_obj;
va_list args;
char *arg_sig, *ret_sig;
+ PMC *old_call_obj = Parrot_pcc_get_signature(interp, CURRENT_CONTEXT(interp));
Parrot_pcc_split_signature_string(interp, signature, &arg_sig, &ret_sig);
va_start(args, signature);
@@ -247,6 +250,7 @@
Parrot_pcc_fill_params_from_varargs(interp, call_obj, ret_sig, &args,
PARROT_ERRORS_RESULT_COUNT_FLAG);
va_end(args);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), old_call_obj);
}
More information about the parrot-commits
mailing list