Fixed a whole lot more memory leaks.
[pspp] / src / q2c.c
index 5d188bbcedd1a04ca10b89d272aa45a5f8fbe693..1361320491b25a614fb90bc13d5a9c12e89b9aa6 100644 (file)
--- a/src/q2c.c
+++ b/src/q2c.c
@@ -1611,7 +1611,7 @@ dump_subcommand (const subcommand *sbc)
     {
       dump (0, "p->%sv_%s = parse_variable ();",
            st_lower (sbc->prefix), st_lower (sbc->name));
-      dump (1, "if (p->%sv_%s)",
+      dump (1, "if (!p->%sv_%s)",
            st_lower (sbc->prefix), st_lower (sbc->name));
       dump (0, "goto lossage;");
       outdent ();
@@ -2058,6 +2058,9 @@ dump_free (int persistent)
        {
          switch (sbc->type) 
            {
+            case SBC_VARLIST:
+             dump (0, "free (p->v_variables);");
+              break;
            case SBC_STRING:
              dump (0, "free (p->s_%s);", st_lower (sbc->name));
              break;