[svn:parrot] r41962 - branches/pcc_reapply/src
chromatic at svn.parrot.org
chromatic at svn.parrot.org
Tue Oct 20 20:18:09 UTC 2009
Author: chromatic
Date: Tue Oct 20 20:18:08 2009
New Revision: 41962
URL: https://trac.parrot.org/parrot/changeset/41962
Log:
[extend] Fixed fencepost errors when prepending invocant signature to
Parrot_call_method_*() functions. These need tests in t/src/extend.t, if we
want to delight HLL developers.
Modified:
branches/pcc_reapply/src/extend.c
Modified: branches/pcc_reapply/src/extend.c
==============================================================================
--- branches/pcc_reapply/src/extend.c Tue Oct 20 20:13:28 2009 (r41961)
+++ branches/pcc_reapply/src/extend.c Tue Oct 20 20:18:08 2009 (r41962)
@@ -1242,14 +1242,14 @@
ASSERT_ARGS(Parrot_call_method)
va_list args;
PMC *sig_object;
- void *result;
+ void *result = NULL;
char return_sig = signature[0];
char *arg_sig = (char*)malloc(strlen(signature)+2);
Parrot_sub *sub;
arg_sig[0] = 'P';
arg_sig[1] = 'i';
arg_sig[2] = 0;
- strcat(arg_sig, signature + 1);
+ strcat(arg_sig, signature);
va_start(args, signature);
sig_object = Parrot_pcc_build_sig_object_from_varargs(interp, obj, arg_sig, args);
@@ -1307,14 +1307,14 @@
ASSERT_ARGS(Parrot_call_method_ret_int)
va_list args;
PMC *sig_object;
- Parrot_Int result;
+ Parrot_Int result = 0;
char return_sig = signature[0];
char *arg_sig = (char*)malloc(strlen(signature)+2);
Parrot_sub *sub;
arg_sig[0] = 'P';
arg_sig[1] = 'i';
arg_sig[2] = 0;
- strcat(arg_sig, signature + 1);
+ strcat(arg_sig, signature);
va_start(args, signature);
sig_object = Parrot_pcc_build_sig_object_from_varargs(interp, obj, arg_sig, args);
@@ -1348,14 +1348,14 @@
ASSERT_ARGS(Parrot_call_method_ret_float)
va_list args;
PMC *sig_object;
- Parrot_Float result;
+ Parrot_Float result = 0.0;
char return_sig = signature[0];
char *arg_sig = (char*)malloc(strlen(signature)+2);
Parrot_sub *sub;
arg_sig[0] = 'P';
arg_sig[1] = 'i';
arg_sig[2] = 0;
- strcat(arg_sig, signature + 1);
+ strcat(arg_sig, signature);
va_start(args, signature);
sig_object = Parrot_pcc_build_sig_object_from_varargs(interp, obj, arg_sig, args);
More information about the parrot-commits
mailing list