X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fvariable.c;h=4a2e44057c70c23aeff99d17ee206cc205ad5105;hb=c90c44ab307b3ba49f606d2bae80e6aff1e228d7;hp=dcd91800022cd26a55ea10b719ee2cdb620a1898;hpb=679e253a4777564db48ccec70b8ce2f6e5b7e46b;p=pspp diff --git a/src/data/variable.c b/src/data/variable.c index dcd9180002..4a2e44057c 100644 --- a/src/data/variable.c +++ b/src/data/variable.c @@ -29,13 +29,14 @@ #include "vardict.h" #include -#include #include #include #include #include #include +#include "xalloc.h" + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -173,6 +174,7 @@ var_destroy (struct variable *v) { assert (!var_has_vardict (v)); cat_stored_values_destroy (v->obs_vals); + var_clear_short_names (v); var_clear_aux (v); val_labs_destroy (v->val_labs); var_clear_label (v); @@ -840,7 +842,6 @@ var_set_short_name (struct variable *var, size_t idx, const char *short_name) { size_t old_cnt = var->short_name_cnt; size_t i; - var->short_name_cnt = MAX (idx * 2, 1); var->short_names = xnrealloc (var->short_names, var->short_name_cnt, sizeof *var->short_names); @@ -859,9 +860,10 @@ void var_clear_short_names (struct variable *v) { size_t i; - + for (i = 0; i < v->short_name_cnt; i++) free (v->short_names[i]); + free (v->short_names); v->short_names = NULL; v->short_name_cnt = 0; }