summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-01-05 16:37:45 +0100
committerJiří Klimeš <jklimes@redhat.com>2015-12-01 12:57:42 +0100
commit0b654d984cf34a73f95e72fe18223c550b8046a6 (patch)
treea5c2cbf8ca910f3c2bc7ab465a0cad27c5e62254
parent816762515b53ccc597fcc63f7c5038cbbea245bd (diff)
downloadNetworkManager-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.c12
-rw-r--r--src/nm-sleep-monitor-systemd.c12
-rw-r--r--src/nm-sleep-monitor-upower.c12
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);
/* ---------------------------------------------------------------------------------------------------- */