X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fmatrix-reader.c;h=05be57efcb892dd600deb5e51807c461fc70631e;hb=refs%2Fheads%2Fctables13;hp=73d60c844dc19cfd66ad265fca9bfd107d1900fd;hpb=aa93c33832ee3dd896062da88b88e7282437ea78;p=pspp diff --git a/src/language/data-io/matrix-reader.c b/src/language/data-io/matrix-reader.c index 73d60c844d..05be57efcb 100644 --- a/src/language/data-io/matrix-reader.c +++ b/src/language/data-io/matrix-reader.c @@ -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; }