X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdictionary.c;h=d2768cad505a43f9daa80ad17244f72db0889455;hb=033725a375c3ffe41c3e6025e8c65962bf726062;hp=ceea10ed6851314aaff8f20a571fa990dce9a3f0;hpb=afbaddb93a29a8fd72e067c18d42a8caf8cd209a;p=pspp diff --git a/src/data/dictionary.c b/src/data/dictionary.c index ceea10ed68..d2768cad50 100644 --- a/src/data/dictionary.c +++ b/src/data/dictionary.c @@ -133,7 +133,7 @@ reindex_var (struct dictionary *d, struct vardict_info *vardict, bool skip_callb if (old) { d->callbacks->var_changed (d, var_get_dict_index (var), VAR_TRAIT_POSITION, old, d->cb_data); - var_destroy (old); + var_unref (old); } } } @@ -466,7 +466,7 @@ dict_delete_var__ (struct dictionary *d, struct variable *v, bool skip_callbacks } invalidate_proto (d); - var_destroy (v); + var_unref (v); } /* Deletes variable V from dictionary D and frees V. @@ -569,7 +569,7 @@ dict_delete_consecutive_vars (struct dictionary *d, size_t idx, size_t count) var_clear_vardict (dv->var); if (d->callbacks && d->callbacks->var_deleted) d->callbacks->var_deleted (d, dv->var, vi, dv->case_index, d->cb_data); - var_destroy (dv->var); + var_unref (dv->var); free (dv); } } @@ -988,7 +988,7 @@ dict_try_rename_var (struct dictionary *d, struct variable *v, if (d->callbacks && d->callbacks->var_changed) d->callbacks->var_changed (d, var_get_dict_index (v), VAR_TRAIT_NAME, old, d->cb_data); - var_destroy (old); + var_unref (old); return true; } @@ -1795,11 +1795,14 @@ dict_var_changed (const struct variable *v, unsigned int what, struct variable * if (NULL == d) return; + if (what & (VAR_TRAIT_WIDTH | VAR_TRAIT_POSITION)) + invalidate_proto (d); + if (d->changed) d->changed (d, d->changed_data); if (d->callbacks && d->callbacks->var_changed) d->callbacks->var_changed (d, var_get_dict_index (v), what, oldvar, d->cb_data); } - var_destroy (oldvar); + var_unref (oldvar); }