projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memory leak in data_in
[pspp]
/
src
/
language
/
stats
/
aggregate.c
diff --git
a/src/language/stats/aggregate.c
b/src/language/stats/aggregate.c
index ba0650937d93f29758b648524192fb1deaed59fe..42f330d5d21a64b141a963b82ce1bbcae49a7c3e 100644
(file)
--- a/
src/language/stats/aggregate.c
+++ b/
src/language/stats/aggregate.c
@@
-391,7
+391,8
@@
parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict,
size_t n_dest_prev = n_dest;
if (!parse_DATA_LIST_vars (lexer, &dest, &n_dest,
size_t n_dest_prev = n_dest;
if (!parse_DATA_LIST_vars (lexer, &dest, &n_dest,
- PV_APPEND | PV_SINGLE | PV_NO_SCRATCH))
+ (PV_APPEND | PV_SINGLE | PV_NO_SCRATCH
+ | PV_NO_DUPLICATE)))
goto error;
/* Assign empty labels. */
goto error;
/* Assign empty labels. */
@@
-711,8
+712,8
@@
agr_destroy (struct agr_proc *agr)
else if (iter->function == SD)
moments1_destroy (iter->moments);
else if (iter->function == SD)
moments1_destroy (iter->moments);
-
var_destroy
(iter->subject);
-
var_destroy
(iter->weight);
+
dict_destroy_internal_var
(iter->subject);
+
dict_destroy_internal_var
(iter->weight);
free (iter);
}
free (iter);
}
@@
-1105,10
+1106,10
@@
initialize_aggregate_info (struct agr_proc *agr, const struct ccase *input)
proto = caseproto_add_width (proto, 0);
if ( ! iter->subject)
proto = caseproto_add_width (proto, 0);
if ( ! iter->subject)
- iter->subject =
var_create_internal
(0, 0);
+ iter->subject =
dict_create_internal_var
(0, 0);
if ( ! iter->weight)
if ( ! iter->weight)
- iter->weight =
var_create_internal
(1, 0);
+ iter->weight =
dict_create_internal_var
(1, 0);
subcase_init_var (&ordering, iter->subject, SC_ASCEND);
iter->writer = sort_create_writer (&ordering, proto);
subcase_init_var (&ordering, iter->subject, SC_ASCEND);
iter->writer = sort_create_writer (&ordering, proto);