Do not call ibus_connection_flush in ibus_bus_exit to avoid crash.
authorHuang Peng <shawn.p.huang@gmail.com>
Mon, 16 Feb 2009 02:35:37 +0000 (10:35 +0800)
committerHuang Peng <shawn.p.huang@gmail.com>
Mon, 16 Feb 2009 02:35:37 +0000 (10:35 +0800)
src/ibusbus.c

index 0ebdf665a7d81dc1b38cb3e298d1304d8e6bbf16..52631e848fa6bbf649c9b45a6223f6fe636e664e 100644 (file)
@@ -149,6 +149,9 @@ _connection_destroy_cb (IBusConnection  *connection,
     priv = IBUS_BUS_GET_PRIVATE (bus);
 
     g_assert (priv->connection == connection);
+    g_signal_handlers_disconnect_by_func (priv->connection,
+                                          G_CALLBACK (_connection_destroy_cb),
+                                          bus);
     g_object_unref (priv->connection);
     priv->connection = NULL;
 
@@ -651,8 +654,6 @@ ibus_bus_exit (IBusBus *bus,
                             G_TYPE_BOOLEAN, &restart,
                             G_TYPE_INVALID,
                             G_TYPE_INVALID);
-    ibus_connection_flush (priv->connection);
-
     return result;
 }