Skip to content
  • Tim Janik's avatar
    added a define G_HOOK_DEFERRED_DESTROY, to substitute a noop · 5c2fb376
    Tim Janik authored
    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.
    5c2fb376