X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fget.c;h=d22a4e50ddd93911a64b514ea61bc76fa4eb0692;hb=0d70c2c8ed5d4ae5b40bb98c6c31db4f8ba87d68;hp=b861aca52ffef7df758d3eabfc506718795081eb;hpb=c13375ebe886fc3ed5ce70a260bb2b01cebb4b1f;p=pspp-builds.git diff --git a/src/language/data-io/get.c b/src/language/data-io/get.c index b861aca5..d22a4e50 100644 --- a/src/language/data-io/get.c +++ b/src/language/data-io/get.c @@ -88,6 +88,7 @@ parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command { lex_match (lexer, '='); + fh_unref (fh); fh = fh_parse (lexer, FH_REF_FILE | FH_REF_SCRATCH); if (fh == NULL) goto error; @@ -140,9 +141,11 @@ parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command proc_set_active_file (ds, reader, dict); + fh_unref (fh); return CMD_SUCCESS; error: + fh_unref (fh); casereader_destroy (reader); if (dict != NULL) dict_destroy (dict); @@ -368,9 +371,11 @@ parse_write_command (struct lexer *lexer, struct dataset *ds, map); dict_destroy (dict); + fh_unref (handle); return writer; error: + fh_unref (handle); casewriter_destroy (writer); dict_destroy (dict); case_map_destroy (map); @@ -1089,6 +1094,7 @@ mtf_close_all_files (struct mtf_proc *mtf) ll_for_each_preremove (file, struct mtf_file, ll, &mtf->files) { + fh_unref (file->handle); casereader_destroy (file->reader); free (file->by); dict_destroy (file->dict);