[svn:parrot] r41662 - branches/pcc_reapply/src/call
bacek at svn.parrot.org
bacek at svn.parrot.org
Sun Oct 4 01:36:56 UTC 2009
Author: bacek
Date: Sun Oct 4 01:36:55 2009
New Revision: 41662
URL: https://trac.parrot.org/parrot/changeset/41662
Log:
Fix handling of null CallSignature and "returns"
Modified:
branches/pcc_reapply/src/call/args.c
Modified: branches/pcc_reapply/src/call/args.c
==============================================================================
--- branches/pcc_reapply/src/call/args.c Sun Oct 4 01:26:57 2009 (r41661)
+++ branches/pcc_reapply/src/call/args.c Sun Oct 4 01:36:55 2009 (r41662)
@@ -583,9 +583,8 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"too few arguments: 0 passed, %d expected",
param_count);
- else
- return;
}
+ return;
}
positional_elements = VTABLE_elements(interp, call_object);
@@ -831,9 +830,8 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"too few arguments: 0 passed, %d expected",
param_count);
- else
- return;
}
+ return;
}
positional_elements = VTABLE_elements(interp, call_object);
@@ -1120,8 +1118,8 @@
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"too many return values: %d passed, 0 expected",
raw_return_count);
- return;
}
+ return;
}
else
return_list_elements = VTABLE_elements(interp, return_list);
@@ -1242,21 +1240,21 @@
/* A null call object is fine if there are no arguments and no returns. */
if (PMC_IS_NULL(call_object)) {
- if (raw_return_count > 0) {
+ if (raw_return_count > 0)
if (err_check)
Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
"too many return values: %d passed, 0 expected",
raw_return_count);
- }
return;
}
return_list = VTABLE_get_attr_str(interp, call_object, CONST_STRING(interp, "returns"));
if (PMC_IS_NULL(return_list)) {
- if (err_check)
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
- "too many return values: %d passed, 0 expected",
- raw_return_count, return_list_elements);
+ if (raw_return_count > 0)
+ if (err_check)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_OPERATION,
+ "too many return values: %d passed, 0 expected",
+ raw_return_count, return_list_elements);
return;
}
else
More information about the parrot-commits
mailing list