[svn:parrot] r42910 - branches/cs_csr_cleanup/src/call

bacek at svn.parrot.org bacek at svn.parrot.org
Sun Dec 6 09:41:58 UTC 2009


Author: bacek
Date: Sun Dec  6 09:41:58 2009
New Revision: 42910
URL: https://trac.parrot.org/parrot/changeset/42910

Log:
Made csr_reallocate_return_values to return reallocated values.

Modified:
   branches/cs_csr_cleanup/src/call/args.c

Modified: branches/cs_csr_cleanup/src/call/args.c
==============================================================================
--- branches/cs_csr_cleanup/src/call/args.c	Sun Dec  6 09:21:46 2009	(r42909)
+++ branches/cs_csr_cleanup/src/call/args.c	Sun Dec  6 09:41:58 2009	(r42910)
@@ -139,7 +139,8 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-static void csr_reallocate_return_values(PARROT_INTERP,
+PARROT_CANNOT_RETURN_NULL
+static void** csr_reallocate_return_values(PARROT_INTERP,
     ARGIN(PMC *self),
     INTVAL size)
         __attribute__nonnull__(1)
@@ -2440,10 +2441,9 @@
         GETATTR_CallSignature_returns_values(interp, parent, returns_values);
 
         /* Resize tailcall.returns_values to new size */
-        csr_reallocate_return_values(interp, tailcall, returns_size);
+        tailcall_returns_values = csr_reallocate_return_values(interp, tailcall, returns_size);
 
         /* And copy values over it */
-        GETATTR_CallSignature_returns_values(interp, tailcall, tailcall_returns_values);
         mem_copy_n_typed(tailcall_returns_values, returns_values, returns_size, void**);
 
         /* Store raw signature */
@@ -2869,7 +2869,7 @@
 
 /*
 
-=item C<static void csr_reallocate_return_values(PARROT_INTERP, PMC *self,
+=item C<static void** csr_reallocate_return_values(PARROT_INTERP, PMC *self,
 INTVAL size)>
 
 Resizes the array to C<size> elements.
@@ -2878,7 +2878,8 @@
 
 */
 
-static void
+PARROT_CANNOT_RETURN_NULL
+static void**
 csr_reallocate_return_values(PARROT_INTERP, ARGIN(PMC *self), INTVAL size)
 {
     ASSERT_ARGS(csr_reallocate_return_values)
@@ -2896,7 +2897,6 @@
     }
     else if (size <= resize_threshold) {
         SETATTR_CallSignature_returns_size(interp, self, size);
-        return;
     }
     else {
         void   *old_values;
@@ -2925,6 +2925,8 @@
         SETATTR_CallSignature_returns_size(interp, self, size);
         SETATTR_CallSignature_returns_resize_threshold(interp, self, cur);
     }
+
+    return values;
 }
 
 /*


More information about the parrot-commits mailing list