mirror of
https://gitlab.freedesktop.org/upower/upower.git
synced 2026-04-03 05:40:34 +02:00
daemon: Stop passing UpDevice reference to the daemon
There is no need to do so, in particular as the signal emission code will keep a reference to the object internally.
This commit is contained in:
parent
4651088391
commit
b78a2ab980
3 changed files with 9 additions and 18 deletions
|
|
@ -155,7 +155,7 @@ out:
|
|||
static void
|
||||
up_backend_create_new_device (UpBackend *backend, UpAcpiNative *native)
|
||||
{
|
||||
UpDevice *device;
|
||||
g_autoptr(UpDevice) device = NULL;
|
||||
|
||||
device = g_initable_new (UP_TYPE_DEVICE_SUPPLY, NULL, NULL,
|
||||
"daemon", backend->priv->daemon,
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ static guint signals [SIGNAL_LAST] = { 0 };
|
|||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (UpBackend, up_backend, G_TYPE_OBJECT)
|
||||
|
||||
static gboolean up_backend_device_add (UpBackend *backend, GUdevDevice *native, const char *was_event);
|
||||
static void up_backend_device_add (UpBackend *backend, GUdevDevice *native, const char *was_event);
|
||||
static void up_backend_device_remove (UpBackend *backend, GUdevDevice *native);
|
||||
|
||||
static void
|
||||
|
|
@ -206,12 +206,11 @@ out:
|
|||
g_clear_object (&object);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
static void
|
||||
up_backend_device_add (UpBackend *backend, GUdevDevice *native, const char *was_event)
|
||||
{
|
||||
GObject *object;
|
||||
UpDevice *device;
|
||||
gboolean ret = TRUE;
|
||||
g_autoptr(UpDevice) device = NULL;
|
||||
GObject *object = NULL;
|
||||
|
||||
/* does device exist in db? */
|
||||
object = up_device_list_lookup (backend->priv->device_list, G_OBJECT (native));
|
||||
|
|
@ -219,24 +218,19 @@ up_backend_device_add (UpBackend *backend, GUdevDevice *native, const char *was_
|
|||
device = UP_DEVICE (object);
|
||||
/* we already have the device; treat as change event */
|
||||
up_backend_device_changed (backend, native, "add");
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
/* get the right sort of device */
|
||||
device = up_backend_device_new (backend, native);
|
||||
if (device == NULL) {
|
||||
ret = FALSE;
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
if (was_event)
|
||||
g_warning ("treated %s event as add on %s", was_event, g_udev_device_get_sysfs_path (native));
|
||||
|
||||
/* emit */
|
||||
g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 0, device);
|
||||
out:
|
||||
g_clear_object (&object);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -355,8 +349,8 @@ bluez_interface_added (GDBusObjectManager *manager,
|
|||
GDBusInterface *interface,
|
||||
gpointer user_data)
|
||||
{
|
||||
g_autoptr(UpDevice) device = NULL;
|
||||
UpBackend *backend = user_data;
|
||||
UpDevice *device;
|
||||
GObject *object;
|
||||
|
||||
if (!has_battery_iface (bus_object))
|
||||
|
|
|
|||
|
|
@ -955,7 +955,7 @@ up_daemon_device_removed_cb (UpBackend *backend, UpDevice *device, UpDaemon *dae
|
|||
|
||||
g_signal_handlers_disconnect_by_data (device, daemon);
|
||||
|
||||
/* remove from list */
|
||||
/* remove from list (device remains valid during the function call) */
|
||||
up_device_list_remove (priv->power_devices, device);
|
||||
|
||||
/* emit */
|
||||
|
|
@ -969,9 +969,6 @@ up_daemon_device_removed_cb (UpBackend *backend, UpDevice *device, UpDaemon *dae
|
|||
}
|
||||
up_exported_daemon_emit_device_removed (UP_EXPORTED_DAEMON (daemon), object_path);
|
||||
|
||||
/* finalise the object */
|
||||
g_object_unref (device);
|
||||
|
||||
/* In case a battery was removed */
|
||||
up_daemon_refresh_battery_devices (daemon);
|
||||
up_daemon_update_warning_level (daemon);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue