static void ibus_bus_destroy (IBusObject *object) { IBusBus *bus; IBusBusPrivate *priv; bus = IBUS_BUS (object); priv = IBUS_BUS_GET_PRIVATE (bus); if (priv->monitor) { g_object_unref (priv->monitor); priv->monitor = NULL; } if (priv->config) { ibus_object_destroy ((IBusObject *) priv->config); priv->config = NULL; } if (priv->connection) { ibus_object_destroy ((IBusObject *) priv->connection); priv->connection = NULL; } IBUS_OBJECT_CLASS (ibus_bus_parent_class)->destroy (object); }
IBusBus * ibus_bus_new (void) { IBusBus *bus = IBUS_BUS (g_object_new (IBUS_TYPE_BUS, NULL)); return bus; }
static GObject* ibus_bus_constructor (GType type, guint n_params, GObjectConstructParam *params) { GObject *object; /* share one IBusBus instance in whole application */ if (_bus == NULL) { object = G_OBJECT_CLASS (ibus_bus_parent_class)->constructor (type, n_params, params); /* make bus object sink */ g_object_ref_sink (object); _bus = IBUS_BUS (object); } else { object = g_object_ref (_bus); } return object; }