X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdataset.c;fp=src%2Fdata%2Fdataset.c;h=aa68ae9cb6b6c32ac1484b5aeb7cc83da9d705c2;hb=4033be328420b1a8e9ab9078a876334ad58b3b9f;hp=ded7c7ab02196e9d6193440b3c13bc0635d93ea0;hpb=f2feace23acc253d05c71e0237b5669e17226cad;p=pspp diff --git a/src/data/dataset.c b/src/data/dataset.c index ded7c7ab02..aa68ae9cb6 100644 --- a/src/data/dataset.c +++ b/src/data/dataset.c @@ -351,13 +351,12 @@ bool dataset_delete_vars (struct dataset *ds, struct variable **vars, size_t n) { dict_delete_vars (ds->dict, vars, n); - - if (ds->source) - { - struct case_map *map = case_map_to_compact_dict (ds->d, 0); - ds->source = case_map_create_input_translator (map, ds->source); - } + ds->source = case_map_create_input_translator ( + case_map_to_compact_dict (ds->dict, 0), ds->source); dict_compact_values (ds->dict); + caseinit_clear (ds->caseinit); + caseinit_mark_as_preinited (ds->caseinit, ds->dict); + return true; } /* Returns a number unique to DS. It can be used to distinguish one dataset @@ -816,6 +815,12 @@ proc_pop_transformations (struct dataset *ds, struct trns_chain *chain) *chain = ds->stack[--ds->n_stack]; } +bool +proc_has_transformations (const struct dataset *ds) +{ + return ds->permanent_trns_chain.n || ds->temporary_trns_chain.n; +} + static enum trns_result store_case_num (void *var_, struct ccase **cc, casenumber case_num) {