X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fstorage-stream.c;h=912a10398cb9d5bee1e584907d6ee0368f0db65d;hb=65e61cc92b48297625bc71cf31b8a19e301eb6c1;hp=d1dcd05d1ad9d9c28535a6ddb7b90ffdafc04d45;hpb=1f7e42084393a7b65296e1ac815e1a19184cd56f;p=pspp diff --git a/src/data/storage-stream.c b/src/data/storage-stream.c index d1dcd05d1a..912a10398c 100644 --- a/src/data/storage-stream.c +++ b/src/data/storage-stream.c @@ -21,12 +21,14 @@ #include +#include #include #include #include #include #include +#include #include "xalloc.h" @@ -45,7 +47,7 @@ storage_sink_open (struct case_sink *sink) struct storage_stream_info *info; sink->aux = info = xmalloc (sizeof *info); - info->casefile = casefile_create (sink->value_cnt); + info->casefile = fastfile_create (sink->value_cnt); } /* Destroys storage stream represented by INFO. */ @@ -121,7 +123,7 @@ storage_source_read (struct case_source *source, struct casereader *reader; bool ok = true; - for (reader = casefile_get_reader (info->casefile); + for (reader = casefile_get_reader (info->casefile, NULL); ok && casereader_read (reader, &casefile_case); case_destroy (&casefile_case)) { @@ -151,6 +153,7 @@ const struct case_source_class storage_source_class = storage_source_destroy, }; +/* Returns the casefile encapsulated by SOURCE. */ struct casefile * storage_source_get_casefile (struct case_source *source) { @@ -171,17 +174,19 @@ storage_source_decapsulate (struct case_source *source) assert (source->class == &storage_source_class); casefile = info->casefile; info->casefile = NULL; - destroy_storage_stream_info (info); + free_case_source (source); return casefile; } +/* Creates and returns a new storage stream that encapsulates + CASEFILE. */ struct case_source * -storage_source_create (struct casefile *cf) +storage_source_create (struct casefile *casefile) { struct storage_stream_info *info; info = xmalloc (sizeof *info); - info->casefile = cf; + info->casefile = casefile; return create_case_source (&storage_source_class, info); }