X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fdictionary.c;h=d29939aca55a8043cec67cf12d3bf676c91f4b02;hb=ecd26ec19e9f8a58079a1c5fa06b39484787ab7e;hp=a7478596c0b0be2c9ef9d752aee9a70a979f7567;hpb=9cb85c5eb1b0e041f4b7b7f1c5ab9cce55de524f;p=pspp-builds.git diff --git a/src/data/dictionary.c b/src/data/dictionary.c index a7478596..d29939ac 100644 --- a/src/data/dictionary.c +++ b/src/data/dictionary.c @@ -82,6 +82,15 @@ dict_set_callbacks (struct dictionary *dict, } +/* Shallow copy the callbacks from SRC to DEST */ +void +dict_copy_callbacks (struct dictionary *dest, + const struct dictionary *src) +{ + dest->callbacks = src->callbacks; + dest->cb_data = src->cb_data; +} + /* Creates and returns a new dictionary. */ struct dictionary * dict_create (void) @@ -166,6 +175,9 @@ dict_clear (struct dictionary *d) for (i = 0; i < d->var_cnt; i++) { + if (d->callbacks && d->callbacks->var_deleted ) + d->callbacks->var_deleted (d, i, d->cb_data); + var_clear_vardict (d->var[i]); var_destroy (d->var[i]); }