guint status_timer;
FlashlightContext_t *flashlight;
+ DBusConnection *dbus_connection;
LibHalContext *hal;
};
/* initialize dbus */
dbus_error_init (&error);
- dbus_connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+ priv->dbus_connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
if (dbus_error_is_set (&error)) {
g_critical ("flashlight_status_plugin_init: Could not get the system DBus connection, %s",
error.message);
return;
}
- libhal_ctx_set_dbus_connection (priv->hal, dbus_connection);
+ libhal_ctx_set_dbus_connection (priv->hal, priv->dbus_connection);
libhal_ctx_set_user_data (priv->hal, plugin);
libhal_ctx_set_device_property_modified (priv->hal,
flashlight_status_plugin_on_hal_property_modified);
}
priv->hal = NULL;
+ /* unreference dbus connection */
+ if (priv->dbus_connection) {
+ dbus_connection_unref (priv->dbus_connection);
+ }
+ priv->dbus_connection = NULL;
+
/* cancel status timer */
if (priv->status_timer) {
g_source_remove (priv->status_timer);