summaryrefslogtreecommitdiff
path: root/ghook.c
diff options
context:
space:
mode:
Diffstat (limited to 'ghook.c')
-rw-r--r--ghook.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ghook.c b/ghook.c
index fae692796..7e1c82dea 100644
--- a/ghook.c
+++ b/ghook.c
@@ -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 */