[telepathy-mission-control/master] Don't ref context (released by mcd_dispatcher_context_handler_done) unless we're actually going to call HandleChannels

Simon McVittie simon.mcvittie at collabora.co.uk
Thu May 28 07:11:17 PDT 2009


---
 src/mcd-dispatcher.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 8340116..6eb1642 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -948,9 +948,6 @@ mcd_dispatcher_run_handlers (McdDispatcherContext *context)
     GList *channels, *list;
     gchar **iter;
 
-    /* released by mcd_dispatcher_context_handler_done */
-    mcd_dispatcher_context_ref (context, "CTXREF09");
-
     sp_timestamp ("run handlers");
     mcd_dispatcher_context_ref (context, "CTXREF04");
 
@@ -980,6 +977,9 @@ mcd_dispatcher_run_handlers (McdDispatcherContext *context)
              * the right choice. */
             if (handler != NULL)
             {
+                /* released by mcd_dispatcher_context_handler_done */
+                mcd_dispatcher_context_ref (context, "CTXREF09");
+
                 mcd_dispatcher_handle_channels (context, channels, handler);
                 goto finally;
             }
@@ -1003,6 +1003,9 @@ mcd_dispatcher_run_handlers (McdDispatcherContext *context)
 
         if (handler != NULL)
         {
+            /* released by mcd_dispatcher_context_handler_done */
+            mcd_dispatcher_context_ref (context, "CTXREF09");
+
             mcd_dispatcher_handle_channels (context, channels, handler);
             goto finally;
         }
-- 
1.5.6.5




More information about the telepathy-commits mailing list