[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