X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fdata%2Fcasefile.c;h=f0e700d530a131b3ec5560916d37a7100df2aba5;hb=a37754c18dee3d5941e5fe041b2c1fa1a3370157;hp=95e0388c4e8733ed74b6a3e89ebd780a0dbbe771;hpb=57b436a22d9ae0e395fb2e3ce101c2b5c2e6939e;p=pspp diff --git a/src/data/casefile.c b/src/data/casefile.c index 95e0388c4e..f0e700d530 100644 --- a/src/data/casefile.c +++ b/src/data/casefile.c @@ -157,7 +157,10 @@ casereader_read_xfer (struct casereader *ffr, struct ccase *c) if ( ! read_case ) return false; if ( ffr->destructive && casefile_in_core (cf) ) + { + case_nullify (c); case_move (c, read_case); + } else case_clone (c, read_case); @@ -173,6 +176,16 @@ casereader_destroy (struct casereader *r) r->class->destroy(r); } +/* Creates a copy of R and returns it */ +struct casereader * +casereader_clone(const struct casereader *r) +{ + /* Would we ever want to clone a destructive reader ?? */ + assert ( ! r->destructive ) ; + + return r->class->clone (r); +} + /* Destroys casefile CF. */ void casefile_destroy(struct casefile *cf)