summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2008-01-03 15:32:41 +0000
committerAlexander Larsson <alexl@src.gnome.org>2008-01-03 15:32:41 +0000
commit5fdc4a006b1577da5d103978d63b00bc181e6bd3 (patch)
tree1b2c8414c6db345c9dc9e6c50e1e67894b8d0d5a
parentfaded21268889b57708cbcd7281ecefeadafc1af (diff)
downloadgvfs-5fdc4a006b1577da5d103978d63b00bc181e6bd3.tar.gz
Handle pool finalizing on unloads of hal module (#507037)
2008-01-03 Alexander Larsson <alexl@redhat.com> * hal/ghalvolumemonitor.c: Handle pool finalizing on unloads of hal module (#507037) svn path=/trunk/; revision=1072
-rw-r--r--ChangeLog6
-rw-r--r--hal/ghalvolumemonitor.c17
2 files changed, 17 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index d4b8190f..2c316e19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2008-01-03 Alexander Larsson <alexl@redhat.com>
+ * hal/ghalvolumemonitor.c:
+ Handle pool finalizing on unloads of hal module
+ (#507037)
+
+2008-01-03 Alexander Larsson <alexl@redhat.com>
+
* daemon/gvfsbackendsftp.c:
Return icons
diff --git a/hal/ghalvolumemonitor.c b/hal/ghalvolumemonitor.c
index 24a5d629..01f761d0 100644
--- a/hal/ghalvolumemonitor.c
+++ b/hal/ghalvolumemonitor.c
@@ -84,6 +84,15 @@ static void update_discs (GHalVolumeMonitor *monitor);
#define g_hal_volume_monitor_get_type g_hal_volume_monitor_get_type
G_DEFINE_DYNAMIC_TYPE (GHalVolumeMonitor, g_hal_volume_monitor, G_TYPE_NATIVE_VOLUME_MONITOR);
+static HalPool *
+get_hal_pool (void)
+{
+ if (pool == NULL)
+ pool = hal_pool_new ("block");
+
+ return pool;
+}
+
static void
g_hal_volume_monitor_finalize (GObject *object)
{
@@ -355,9 +364,6 @@ g_hal_volume_monitor_constructor (GType type,
object = NULL;
- /* Created by is_supported */
- g_assert (pool != NULL);
-
/* Invoke parent constructor. */
klass = G_HAL_VOLUME_MONITOR_CLASS (g_type_class_peek (G_TYPE_HAL_VOLUME_MONITOR));
parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
@@ -366,7 +372,7 @@ g_hal_volume_monitor_constructor (GType type,
construct_properties);
monitor = G_HAL_VOLUME_MONITOR (object);
- monitor->pool = g_object_ref (pool);
+ monitor->pool = g_object_ref (get_hal_pool ());
monitor->mount_monitor = g_unix_mount_monitor_new ();
@@ -414,8 +420,7 @@ g_hal_volume_monitor_class_finalize (GHalVolumeMonitorClass *klass)
static gboolean
is_supported (void)
{
- pool = hal_pool_new ("block");
- return pool != NULL;
+ return get_hal_pool() != NULL;
}
static GVolume *