for (size_t i = 0; i < s->n_save_files; i++)
{
struct save_file *sf = s->save_files[i];
- if (sf->file == fh)
+ if (fh_equal (sf->file, fh))
{
fh_unref (fh);
{
dataset_set_dict (sf->dataset, sf->dict);
dataset_set_source (sf->dataset, casewriter_make_reader (sf->writer));
- sf->dict = NULL;
- sf->writer = NULL;
}
-
+ else
+ {
+ casewriter_destroy (sf->writer);
+ dict_unref (sf->dict);
+ }
fh_unref (sf->file);
string_array_destroy (&sf->variables);
matrix_expr_destroy (sf->names);
stringi_set_destroy (&sf->strings);
- casewriter_destroy (sf->writer);
- dict_unref (sf->dict);
free (sf);
}
}
}
save->sf = save_file_create (s, fh, &variables, names, &strings);
- fh = NULL;
-
return cmd;
error: