X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Faggregate.c;h=dbfad40f6d4b2b79b938b6a83ed3c771bfa49b8d;hb=f85548f27a1958bb6c84a6917b874c537f4c0bd6;hp=1c885b1be54bfe6e8e837f8603bed9d3dc78b281;hpb=7b98b3a4f58f6dc5a8e9cbc188b627966d5e652d;p=pspp diff --git a/src/aggregate.c b/src/aggregate.c index 1c885b1be5..dbfad40f6d 100644 --- a/src/aggregate.c +++ b/src/aggregate.c @@ -141,11 +141,11 @@ static int aggregate_single_case (struct ccase *input, struct ccase *output); static int create_sysfile (void); static int agr_00x_trns_proc (struct trns_header *, struct ccase *); -static void agr_00x_end_func (void); +static void agr_00x_end_func (void *); static int agr_10x_trns_proc (struct trns_header *, struct ccase *); static void agr_10x_trns_free (struct trns_header *); -static void agr_10x_end_func (void); -static int agr_11x_func (void); +static void agr_10x_end_func (void *); +static int agr_11x_func (write_case_data); #if DEBUGGING static void debug_print (int flags); @@ -343,7 +343,7 @@ cmd_aggregate (void) agr_dict = NULL; - procedure (NULL, NULL, agr_00x_end_func); + procedure (NULL, NULL, agr_00x_end_func, NULL); break; } @@ -359,7 +359,7 @@ cmd_aggregate (void) t->free = agr_10x_trns_free; add_transformation (t); - procedure (NULL, NULL, agr_10x_end_func); + procedure (NULL, NULL, agr_10x_end_func, NULL); } break; @@ -371,12 +371,12 @@ cmd_aggregate (void) if (!create_sysfile ()) goto lossage; - read_sort_output (agr_11x_func); + read_sort_output (agr_11x_func, NULL); { struct ccase *save_temp_case = temp_case; temp_case = NULL; - agr_11x_func (); + agr_11x_func (NULL); temp_case = save_temp_case; } @@ -424,9 +424,7 @@ create_sysfile (void) } buf64_1xx = xmalloc (sizeof *buf64_1xx * w.case_size); - buf_1xx = xmalloc (sizeof (struct ccase) - + (sizeof (union value) - * (dict_get_value_cnt (agr_dict) - 1))); + buf_1xx = xmalloc (dict_get_case_size (agr_dict)); return 1; } @@ -664,6 +662,7 @@ parse_aggregate_functions (void) } free (dest[i]); + destvar->init = 0; if (dest_label[i]) { destvar->label = dest_label[i]; @@ -1207,7 +1206,7 @@ agr_00x_trns_proc (struct trns_header *h UNUSED, struct ccase *c) the cases have been output; very little has been cleaned up at this point. */ static void -agr_00x_end_func (void) +agr_00x_end_func (void *aux UNUSED) { /* Ensure that info for the last break group gets written to the active file. */ @@ -1272,7 +1271,7 @@ agr_10x_trns_free (struct trns_header *h UNUSED) /* Ensure that info for the last break group gets written to the system file. */ static void -agr_10x_end_func (void) +agr_10x_end_func (void *aux UNUSED) { dump_aggregate_info (buf_1xx); write_case_to_sfm (); @@ -1283,7 +1282,7 @@ agr_10x_end_func (void) appropriate. If temp_case is NULL, finishes up writing the last case if necessary. */ static int -agr_11x_func (void) +agr_11x_func (write_case_data wc_data UNUSED) { if (temp_case != NULL) {