X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dict.c;h=e381e5dab7a40050df1a47f89e33564ded7341f6;hb=174fe8e41ef09534218803189529cbd797750934;hp=640598e716a3533c38ff41f5e589348133364404;hpb=96994a54e60e9c95b8bba54c2281acf7059b1203;p=pspp diff --git a/src/ui/gui/psppire-dict.c b/src/ui/gui/psppire-dict.c index 640598e716..e381e5dab7 100644 --- a/src/ui/gui/psppire-dict.c +++ b/src/ui/gui/psppire-dict.c @@ -287,6 +287,11 @@ psppire_dict_dispose (GObject *object) { PsppireDict *d = PSPPIRE_DICT (object); + if (!d->dispose_has_run) + return; + + d->dispose_has_run = TRUE; + dict_set_callbacks (d->dict, NULL, NULL); dict_unref (d->dict); @@ -352,10 +357,12 @@ static const struct dict_callbacks gui_callbacks = }; static void -psppire_dict_init (PsppireDict *psppire_dict) +psppire_dict_init (PsppireDict *d) { - psppire_dict->stamp = g_random_int (); - psppire_dict->disable_insert_signal = FALSE; + d->dispose_has_run = FALSE; + + d->stamp = g_random_int (); + d->disable_insert_signal = FALSE; } /** @@ -473,7 +480,6 @@ psppire_dict_insert_variable (PsppireDict *d, gint idx, const gchar *name) void psppire_dict_delete_variables (PsppireDict *d, gint first, gint n) { - gint idx; g_return_if_fail (d); g_return_if_fail (d->dict); g_return_if_fail (PSPPIRE_IS_DICT (d));