treewide: Replace <name>_cnt by n_<name>s and <name>_cap by allocated_<name>.
[pspp] / src / language / data-io / matrix-reader.c
index 73d60c844dc19cfd66ad265fca9bfd107d1900fd..05be57efcb892dd600deb5e51807c461fc70631e 100644 (file)
@@ -130,7 +130,7 @@ matrix_reader_create (const struct dictionary *dict,
       return NULL;
     }
 
-  for (size_t i = 0; i < dict_get_var_cnt (dict); i++)
+  for (size_t i = 0; i < dict_get_n_vars (dict); i++)
     {
       const struct variable *v = dict_get_var (dict, i);
       if (!var_is_numeric (v) && v != rowtype && v != varname)
@@ -183,6 +183,9 @@ matrix_reader_destroy (struct matrix_reader *mr)
   if (mr == NULL)
     return false;
   bool ret = casegrouper_destroy (mr->grouper);
+  free (mr->svars);
+  free (mr->cvars);
+  free (mr->fvars);
   free (mr);
   return ret;
 }
@@ -350,7 +353,10 @@ cmd_debug_matrix_read (struct lexer *lexer, struct dataset *ds)
         mem_writer_create (dict_get_proto (dataset_dict (ds))));
       struct matrix_reader *mr = matrix_reader_create (dataset_dict (ds), cr);
       if (!mr)
-        return CMD_FAILURE;
+        {
+          casereader_destroy (cr);
+          return CMD_FAILURE;
+        }
       matrix_reader_destroy (mr);
       return CMD_SUCCESS;
     }