X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fdata%2Fany-writer.c;h=9ee8af917e03cbdfd03f49642409a725addd5ae0;hb=0e8ce9b60375ae15ddd8dafc27bad1cc26856b08;hp=c5d741a28a800d92efeed76d151492ebbfc7d321;hpb=a19b858e0ac3c69e4a28c0ca6d8674427268a863;p=pspp-builds.git diff --git a/src/data/any-writer.c b/src/data/any-writer.c index c5d741a2..9ee8af91 100644 --- a/src/data/any-writer.c +++ b/src/data/any-writer.c @@ -189,21 +189,29 @@ any_writer_error (const struct any_writer *writer) bool any_writer_close (struct any_writer *writer) { + bool ok; + if (writer == NULL) return true; switch (writer->type) { case SYSTEM_FILE: - return sfm_close_writer (writer->private); + ok = sfm_close_writer (writer->private); + break; case PORTABLE_FILE: - return pfm_close_writer (writer->private); + ok = pfm_close_writer (writer->private); + break; case SCRATCH_FILE: - return scratch_writer_close (writer->private); - + ok = scratch_writer_close (writer->private); + break; + default: abort (); } + + free (writer); + return ok; }