X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fprocedure.c;h=98414a2b0478dbb5e44f306e0f99d90684b86003;hb=fd349404fdd08760cec579198c830bf5b8aede0f;hp=b237c68b05eae06e38db25d3fdf30162dac75b9c;hpb=2bdde1cd21cd58349cf4bd852fddf40524854288;p=pspp-builds.git diff --git a/src/data/procedure.c b/src/data/procedure.c index b237c68b..98414a2b 100644 --- a/src/data/procedure.c +++ b/src/data/procedure.c @@ -32,12 +32,12 @@ #include #include #include -#include #include #include #include #include +#include "xalloc.h" struct dataset { /* Cases are read from source, @@ -56,13 +56,6 @@ struct dataset { struct trns_chain *temporary_trns_chain; struct dictionary *dict; - /* Callback which occurs when a procedure provides a new source for - the dataset */ - replace_source_callback *replace_source ; - - /* Callback which occurs whenever the DICT is replaced by a new one */ - replace_dictionary_callback *replace_dict; - /* Callback which occurs whenever the transformation chain(s) have been modified */ transformation_change_callback_func *xform_callback; @@ -144,7 +137,7 @@ proc_execute (struct dataset *ds) return proc_commit (ds) && ok; } -static struct casereader_class proc_casereader_class; +static const struct casereader_class proc_casereader_class; /* Opens dataset DS for reading cases with proc_read. proc_commit must be called when done. */ @@ -341,7 +334,6 @@ proc_commit (struct dataset *ds) ds->discard_output = false; } ds->sink = NULL; - if ( ds->replace_source) ds->replace_source (ds->source); caseinit_clear (ds->caseinit); caseinit_mark_as_preinited (ds->caseinit, ds->dict); @@ -352,7 +344,7 @@ proc_commit (struct dataset *ds) } /* Casereader class for procedure execution. */ -static struct casereader_class proc_casereader_class = +static const struct casereader_class proc_casereader_class = { proc_casereader_read, proc_casereader_destroy, @@ -498,7 +490,6 @@ proc_cancel_temporary_transformations (struct dataset *ds) dict_destroy (ds->dict); ds->dict = ds->permanent_dict; ds->permanent_dict = NULL; - if (ds->replace_dict) ds->replace_dict (ds->dict); trns_chain_destroy (ds->temporary_trns_chain); ds->temporary_trns_chain = NULL; @@ -532,13 +523,11 @@ proc_cancel_all_transformations (struct dataset *ds) /* Initializes procedure handling. */ struct dataset * -create_dataset (transformation_change_callback_func *cb, void *aux) +create_dataset (void) { struct dataset *ds = xzalloc (sizeof(*ds)); ds->dict = dict_create (); ds->caseinit = caseinit_create (); - ds->xform_callback = cb; - ds->xform_callback_aux = aux; proc_cancel_all_transformations (ds); return ds; } @@ -589,7 +578,6 @@ proc_discard_active_file (struct dataset *ds) casereader_destroy (ds->source); ds->source = NULL; - if ( ds->replace_source) ds->replace_source (NULL); proc_cancel_all_transformations (ds); } @@ -608,7 +596,6 @@ proc_set_active_file (struct dataset *ds, dict_destroy (ds->dict); ds->dict = dict; - if ( ds->replace_dict) ds->replace_dict (dict); proc_set_active_file_data (ds, source); } @@ -620,7 +607,6 @@ proc_set_active_file_data (struct dataset *ds, struct casereader *reader) { casereader_destroy (ds->source); ds->source = reader; - if (ds->replace_source) ds->replace_source (reader); caseinit_clear (ds->caseinit); caseinit_mark_as_preinited (ds->caseinit, ds->dict); @@ -643,7 +629,6 @@ proc_extract_active_file_data (struct dataset *ds) { struct casereader *reader = ds->source; ds->source = NULL; - if (ds->replace_source) ds->replace_source (reader); return reader; } @@ -679,10 +664,10 @@ static trns_free_func case_limit_trns_free; static void add_case_limit_trns (struct dataset *ds) { - size_t case_limit = dict_get_case_limit (ds->dict); + casenumber case_limit = dict_get_case_limit (ds->dict); if (case_limit != 0) { - size_t *cases_remaining = xmalloc (sizeof *cases_remaining); + casenumber *cases_remaining = xmalloc (sizeof *cases_remaining); *cases_remaining = case_limit; add_transformation (ds, case_limit_trns_proc, case_limit_trns_free, cases_remaining);