[svn:parrot] r44740 - branches/pcc_hackathon_6Mar10/src/call
allison at svn.parrot.org
allison at svn.parrot.org
Sun Mar 7 15:23:31 UTC 2010
Author: allison
Date: Sun Mar 7 15:23:29 2010
New Revision: 44740
URL: https://trac.parrot.org/parrot/changeset/44740
Log:
[pcc] Better handling for empty signatures with only args or only returns.
Empty arg signatures still need to prepend the invocant if there is one.
Modified:
branches/pcc_hackathon_6Mar10/src/call/args.c
Modified: branches/pcc_hackathon_6Mar10/src/call/args.c
==============================================================================
--- branches/pcc_hackathon_6Mar10/src/call/args.c Sun Mar 7 12:56:15 2010 (r44739)
+++ branches/pcc_hackathon_6Mar10/src/call/args.c Sun Mar 7 15:23:29 2010 (r44740)
@@ -758,11 +758,10 @@
INTVAL i;
int append_pi = 1;
- if (!sig_len)
- return call_object;
-
- parse_signature_string(interp, sig, &arg_flags);
- VTABLE_set_attr_str(interp, call_object, CONST_STRING(interp, "arg_flags"), arg_flags);
+ if (sig_len) {
+ parse_signature_string(interp, sig, &arg_flags);
+ VTABLE_set_attr_str(interp, call_object, CONST_STRING(interp, "arg_flags"), arg_flags);
+ }
/* Process the varargs list */
for (i = 0; i < sig_len; ++i) {
@@ -2143,6 +2142,8 @@
arg_len++;
}
ret_len = strlen(signature) - arg_len - 2;
+ if (ret_len < 1)
+ ret_len = 0;
arg_tmp = (char *) malloc(arg_len + 1);
ret_tmp = (char *) malloc(ret_len + 1);
More information about the parrot-commits
mailing list