[gobject-introspection] Modify Regress impl so that inout args ignore (transfer) for 'in' direction.



commit bdc1bbdef526cbf08184d5688eeb7dc424ab750b
Author: Pavel Holejsovsky <pavel holejsovsky gmail com>
Date:   Tue Sep 28 07:48:50 2010 +0200

    Modify Regress impl so that inout args ignore (transfer) for 'in' direction.
    
    ... because for 'in' arguments only (transfer none) is correct.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=630788

 tests/scanner/regress.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)
---
diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c
index a6bac2b..839114f 100644
--- a/tests/scanner/regress.c
+++ b/tests/scanner/regress.c
@@ -379,7 +379,6 @@ regress_test_utf8_inout (char **inout)
 {
   /* inout parameter, transfer mode full */
   g_assert (strcmp (*inout, utf8_const) == 0);
-  g_free(*inout);
   *inout = g_strdup (utf8_nonconst);
 }
 
@@ -515,15 +514,16 @@ void
 regress_test_array_int_inout (int *n_ints, int **ints)
 {
   int i;
+  int *new_ints;
 
-  for (i = 1; i < *n_ints; i++) {
-	(*ints)[i-1] = (*ints)[i] + 1;
-  }
-
-  if (0 < *n_ints) {
-    *n_ints -= 1;
-  }
-  *ints = g_realloc(*ints, sizeof(**ints) * *n_ints);
+  if (0 < *n_ints)
+    {
+      *n_ints -= 1;
+      new_ints = g_malloc(sizeof(**ints) * *n_ints);
+      for (i = 0; i < *n_ints; i++)
+	new_ints[i] = (*ints)[i + 1] + 1;
+      *ints = new_ints;
+    }
 }
 
 /**



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]