pspp-cvs
[Top][All Lists]
Advanced

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

[Pspp-cvs] Changes to pspp/src/vars-prs.c


From: Ben Pfaff
Subject: [Pspp-cvs] Changes to pspp/src/vars-prs.c
Date: Fri, 04 Nov 2005 22:45:43 -0500

Index: pspp/src/vars-prs.c
diff -u pspp/src/vars-prs.c:1.22 pspp/src/vars-prs.c:1.23
--- pspp/src/vars-prs.c:1.22    Wed Oct 26 05:06:14 2005
+++ pspp/src/vars-prs.c Sat Nov  5 03:45:28 2005
@@ -29,6 +29,7 @@
 #include "hash.h"
 #include "lexer.h"
 #include "misc.h"
+#include "pool.h"
 #include "size_max.h"
 #include "str.h"
 
@@ -508,12 +509,33 @@
 
 fail:
   for (i = 0; i < *nnames; i++)
-    free ((*names)[*nnames]);
-  free (names);
+    free ((*names)[i]);
+  free (*names);
   *names = NULL;
   *nnames = 0;
   return 0;
 }
+
+/* Parses a list of variables where some of the variables may be
+   existing and the rest are to be created.  Same args as
+   parse_DATA_LIST_vars(), except that all allocations are taken
+   from the given POOL. */
+int
+parse_mixed_vars_pool (struct pool *pool,
+                       char ***names, size_t *nnames, int pv_opts)
+{
+  int retval = parse_mixed_vars (names, nnames, pv_opts);
+  if (retval)
+    {
+      size_t i;
+
+      for (i = 0; i < *nnames; i++)
+        pool_register (pool, free, (*names)[i]);
+      pool_register (pool, free, *names);
+    }
+  return retval;
+}
+
 
 /* A set of variables. */
 struct var_set 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]