X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fcase-source.c;h=542f3008f8f5f234538694bd59d2f39a04514d1e;hb=bc02bc027697df3207f827de722c26d8cc87e824;hp=90d709b1e5add9eee3e3e5803b85b89b1a3d9247;hpb=480a0746507ce73d26f528b56dc3ed80195096e0;p=pspp diff --git a/src/data/case-source.c b/src/data/case-source.c index 90d709b1e5..542f3008f8 100644 --- a/src/data/case-source.c +++ b/src/data/case-source.c @@ -36,17 +36,21 @@ create_case_source (const struct case_source_class *class, return source; } -/* Destroys case source SOURCE. It is the caller's responsible to - call the source's destroy function, if any. */ -void +/* Destroys case source SOURCE. + Returns true if successful, + false if the source encountered an I/O error during + destruction or reading cases. */ +bool free_case_source (struct case_source *source) { + bool ok = true; if (source != NULL) { if (source->class->destroy != NULL) - source->class->destroy (source); + ok = source->class->destroy (source); free (source); } + return ok; } /* Returns true if CLASS is the class of SOURCE. */