mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-11 13:19:22 +01:00
Sun Jan 17 14:13:52 1999 Tim Janik <timj@gtk.org> * glib.h: added a define G_HOOK_DEFERRED_DESTROY, to substitute a noop GHookList.hook_destroy function. * ghook.c (g_hook_destroy_link): don't really call hook_destroy if it is G_HOOK_DEFERRED_DESTROY. for the case where we invoke hook->destroy() we now clean up the hook completely afterwards, i.e. data, func and destroy are immediately set to NULL and hook_free can't play with that values anymore. * gmain.c (g_source_add): set hook_destroy to G_HOOK_DEFERRED_DESTROY, instead of using an ugly _noop() hack, this is to avoid an uneccessary function invokation. set hook_free to g_source_destroy_func, this way we always invoke the destroy notifiers for user_data and source_data after execution of dispatch(). thus, g_source_destroy_func() will always be called within the main_loop lock (this wasn't really assured before), and can release and reaquire the look around destroy notifier invokation.