[beast/devel: 20/26] BSE: workaround GLib API breakage wrg to closure_invalidate/disconnect reordering



commit 682d36b2ba6690b8e4f8c4ecc60486fa7607a74e
Author: Tim Janik <timj gnu org>
Date:   Sun Oct 12 06:00:39 2014 +0200

    BSE: workaround GLib API breakage wrg to closure_invalidate/disconnect reordering
    
    * we used to call g_closure_invalidate (c); g_signal_handler_disconnect (c_id);
      but GLib now internally disconnects the signal handler in closure_invalidate()
      which triggers a warning when we explicitely disconnect the handler *later*.

 bse/bseglue.cc |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/bse/bseglue.cc b/bse/bseglue.cc
index 568699a..a6e1d34 100644
--- a/bse/bseglue.cc
+++ b/bse/bseglue.cc
@@ -848,8 +848,8 @@ bcontext_destroy_bproxy (BContext *bcontext,
       BClosure *bclosure = (BClosure*) closure;
       p->closures = slist->next;
       g_slist_free_1 (slist);
-      g_closure_invalidate (closure);
       g_signal_handler_disconnect (item, bclosure->handler_id);
+      g_closure_invalidate (closure);
       g_closure_unref (closure);
     }
   g_signal_handler_disconnect (item, p->release_id);
@@ -1026,8 +1026,8 @@ bglue_proxy_request_notify (SfiGlueContext *context,
          else
            p->closures = slist->next;
          g_slist_free_1 (slist);
-         g_closure_invalidate (closure);
          g_signal_handler_disconnect (item, bclosure->handler_id);
+         g_closure_invalidate (closure);
          g_closure_unref (closure);
          return FALSE;
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]