return d;
}
-struct dictionary *
-dict_ref (struct dictionary *s)
-{
- s->ref_cnt++;
- return s;
-}
-
/* Creates and returns a (deep) copy of an existing
dictionary.
free (d);
}
+struct dictionary *
+dict_ref (struct dictionary *d)
+{
+ d->ref_cnt++;
+ return d;
+}
+
void
dict_unref (struct dictionary *d)
{
assert (v == NULL || dict_contains_var (d, v));
assert (v == NULL || var_is_numeric (v));
- /* When a filter is set, we ref the dictionary.
- This is because the GUI maintains a pointer
- to the dict's variables, and the variables'
- addresses change in the callback. */
- if (d->filter == NULL && v != NULL)
- {
- d = dict_ref (d);
- }
-
- /* Deref the dict when a filter is removed. */
- if (d->filter != NULL && v == NULL)
- {
- assert (d->ref_cnt > 0);
- dict_unref (d);
- }
-
d->filter = v;
if (d->changed) d->changed (d, d->changed_data);