diff options
author | Thomas Haller <thaller@redhat.com> | 2015-01-05 16:37:45 +0100 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2015-12-01 12:57:42 +0100 |
commit | 0b654d984cf34a73f95e72fe18223c550b8046a6 (patch) | |
tree | a5c2cbf8ca910f3c2bc7ab465a0cad27c5e62254 | |
parent | 816762515b53ccc597fcc63f7c5038cbbea245bd (diff) | |
download | NetworkManager-0b654d984cf34a73f95e72fe18223c550b8046a6.tar.gz |
core: declare nm_sleep_monitor_get() using NM_DEFINE_SINGLETON_GETTER()
Also no longer increment the reference count in the getter and
properly disconnect the signals in NMManager:dispose().
Also use the defines for the signal names instead of plain strings.
(cherry picked from commit a8ebd1aa1ab9284a356b3ff04791ee6b11e67f33)
-rw-r--r-- | src/nm-manager.c | 12 | ||||
-rw-r--r-- | src/nm-sleep-monitor-systemd.c | 12 | ||||
-rw-r--r-- | src/nm-sleep-monitor-upower.c | 12 |
3 files changed, 10 insertions, 26 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c index cc52ea78d1..a0254f8c09 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -4908,10 +4908,10 @@ nm_manager_init (NMManager *manager) nm_log_warn (LOGD_AUTOIP4, "could not initialize avahi-autoipd D-Bus proxy"); /* sleep/wake handling */ - priv->sleep_monitor = nm_sleep_monitor_get (); - g_signal_connect (priv->sleep_monitor, "sleeping", + priv->sleep_monitor = g_object_ref (nm_sleep_monitor_get ()); + g_signal_connect (priv->sleep_monitor, NM_SLEEP_MONITOR_SLEEPING, G_CALLBACK (sleeping_cb), manager); - g_signal_connect (priv->sleep_monitor, "resuming", + g_signal_connect (priv->sleep_monitor, NM_SLEEP_MONITOR_RESUMING, G_CALLBACK (resuming_cb), manager); /* Listen for authorization changes */ @@ -5142,7 +5142,11 @@ dispose (GObject *object) } g_clear_object (&priv->aipd_proxy); - g_clear_object (&priv->sleep_monitor); + if (priv->sleep_monitor) { + g_signal_handlers_disconnect_by_func (priv->sleep_monitor, sleeping_cb, manager); + g_signal_handlers_disconnect_by_func (priv->sleep_monitor, resuming_cb, manager); + g_clear_object (&priv->sleep_monitor); + } if (priv->fw_monitor) { g_signal_handlers_disconnect_by_func (priv->fw_monitor, firmware_dir_changed, manager); diff --git a/src/nm-sleep-monitor-systemd.c b/src/nm-sleep-monitor-systemd.c index c0bc65e4a6..44523a4a21 100644 --- a/src/nm-sleep-monitor-systemd.c +++ b/src/nm-sleep-monitor-systemd.c @@ -243,16 +243,6 @@ nm_sleep_monitor_class_init (NMSleepMonitorClass *klass) G_TYPE_NONE, 0); } -NMSleepMonitor * -nm_sleep_monitor_get (void) -{ - static NMSleepMonitor *singleton = NULL; - - if (singleton) - return g_object_ref (singleton); - - singleton = NM_SLEEP_MONITOR (g_object_new (NM_TYPE_SLEEP_MONITOR, NULL)); - return singleton; -} +NM_DEFINE_SINGLETON_GETTER (NMSleepMonitor, nm_sleep_monitor_get, NM_TYPE_SLEEP_MONITOR); /* ---------------------------------------------------------------------------------------------------- */ diff --git a/src/nm-sleep-monitor-upower.c b/src/nm-sleep-monitor-upower.c index 39cce5958d..0c46ae10fc 100644 --- a/src/nm-sleep-monitor-upower.c +++ b/src/nm-sleep-monitor-upower.c @@ -133,16 +133,6 @@ nm_sleep_monitor_class_init (NMSleepMonitorClass *klass) G_TYPE_NONE, 0); } -NMSleepMonitor * -nm_sleep_monitor_get (void) -{ - static NMSleepMonitor *singleton = NULL; - - if (singleton) - return g_object_ref (singleton); - - singleton = NM_SLEEP_MONITOR (g_object_new (NM_TYPE_SLEEP_MONITOR, NULL)); - return singleton; -} +NM_DEFINE_SINGLETON_GETTER (NMSleepMonitor, nm_sleep_monitor_get, NM_TYPE_SLEEP_MONITOR); /* ---------------------------------------------------------------------------------------------------- */ |