Fix Bug #11955.
[pspp-builds.git] / src / t-test.q
index a5bee8b0668d9e7d9e0b77bd7c25e0580939e377..2e10a2b04bad6459630ddbfc8d2635d7da0fe6bb 100644 (file)
@@ -224,9 +224,6 @@ static int  group_calc (const struct ccase *, struct cmd_t_test *);
 static void group_postcalc (struct cmd_t_test *);
 
 
-static int compare_var_name (const void *a_, const void *b_, void *v_ UNUSED);
-static unsigned hash_var_name (const void *a_, void *v_ UNUSED);
-
 static void calculate(const struct casefile *cf, void *_mode);
 
 static  int mode;
@@ -267,6 +264,7 @@ cmd_t_test(void)
        msg(SE, 
            _("TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive.")
            );
+        free_t_test(&cmd);
        return CMD_FAILURE;
       }
   }
@@ -283,6 +281,7 @@ cmd_t_test(void)
       if (cmd.sbc_variables) 
        {
          msg(SE, _("VARIABLES subcommand is not appropriate with PAIRS"));
+          free_t_test(&cmd);
          return CMD_FAILURE;
        }
       else
@@ -295,7 +294,7 @@ cmd_t_test(void)
          struct hsh_table *hash;
          struct variable *v;
 
-         hash=hsh_create(n_pairs,compare_var_name,hash_var_name,0,0);
+         hash = hsh_create (n_pairs, compare_var_names, hash_var_name, 0, 0);
 
          for (i=0; i < n_pairs; ++i)
            {
@@ -320,6 +319,7 @@ cmd_t_test(void)
   else if ( !cmd.sbc_variables) 
     {
       msg(SE, _("One or more VARIABLES must be specified."));
+      free_t_test(&cmd);
       return CMD_FAILURE;
     }
 
@@ -345,10 +345,11 @@ cmd_t_test(void)
       for (v = 0 ; v < cmd.n_variables ; ++v ) 
        {
          struct group_proc *grpp = group_proc_get (cmd.v_variables[v]);
-         free(grpp->group_hash);
+         hsh_destroy (grpp->group_hash);
        }
     }
     
+  free_t_test(&cmd);
   return CMD_SUCCESS;
 }
 
@@ -1581,25 +1582,6 @@ one_sample_postcalc (struct cmd_t_test *cmd)
 
 
 
-static int
-compare_var_name (const void *a_, const void *b_, void *v_ UNUSED)
-{
-  const struct variable *a = a_;
-  const struct variable *b = b_;
-
-  return strcmp(a->name,b->name);
-}
-
-static unsigned
-hash_var_name (const void *a_, void *v_ UNUSED)
-{
-  const struct variable *a = a_;
-
-  return hsh_hash_bytes (a->name, strlen(a->name));
-}
-
-
-
 static void 
 paired_precalc (struct cmd_t_test *cmd UNUSED)
 {