Make "internal variables" part of a dictionary.
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 9 Apr 2010 04:06:43 +0000 (21:06 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 12 Apr 2010 03:50:14 +0000 (20:50 -0700)
commit844259de34f3b5ed9c1b4a024da63f96f4f2194e
tree57a47de5abf0ad6ee407c53b4a3d82bd37ace97f
parentfd674641880b82597fa35492207f189136e83fbb
Make "internal variables" part of a dictionary.

The "internal variables" created by var_create_internal() are somewhat of
a nasty corner case in the PSPP dictionary and variable implementation,
because they are the only variables that have a case index and
dictionary index but do not belong to a dictionary.  This commit fixes
that wart, by putting internal variables in a dictionary that is used just
for them.  It adds an assertion to var_set_vardict() to ensure that this
is now an invariant property.

As part of the change, var_create_internal() is renamed
dict_Create_internal_var() and moved to dictionary.c, since it fits better
there.  Also, a new function dict_destroy_internal_var() must now be used
to destroy internal variables.

The dictionary indexes of internal variables are no longer unique
process-wide.  A previous commit eliminated the dependencies on this
property.
src/data/dictionary.c
src/data/dictionary.h
src/data/variable.c
src/data/variable.h
src/language/stats/aggregate.c
src/language/stats/wilcoxon.c
src/math/interaction.c