diff options
Diffstat (limited to 'ghook.c')
-rw-r--r-- | ghook.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -131,10 +131,15 @@ g_hook_destroy_link (GHookList *hook_list, hook->hook_id = 0; hook->flags &= ~G_HOOK_FLAG_ACTIVE; if (hook_list->hook_destroy) - hook_list->hook_destroy (hook_list, hook); + { + if (hook_list->hook_destroy != G_HOOK_DEFERRED_DESTROY) + hook_list->hook_destroy (hook_list, hook); + } else if (hook->destroy) { hook->destroy (hook->data); + hook->data = NULL; + hook->func = NULL; hook->destroy = NULL; } g_hook_unref (hook_list, hook); /* counterpart to g_hook_insert_before */ |