summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2008-07-23 19:58:10 +0000
committerDavid Zeuthen <davidz@src.gnome.org>2008-07-23 19:58:10 +0000
commit60a214c431e6afd639035d29247a6721b6ce25ef (patch)
treec371389281ab60b0ef6191f7dcdf70c6295e3dfb
parentd15590dfa305478dd8fcba1fa8591adf45362478 (diff)
downloadgvfs-60a214c431e6afd639035d29247a6721b6ce25ef.tar.gz
Fix crasher (#544399)
2008-07-23 David Zeuthen <davidz@redhat.com> * monitor/proxy/gproxyvolumemonitor.c (g_proxy_volume_monitor_finalize): Fix crasher (#544399) svn path=/trunk/; revision=1834
-rw-r--r--ChangeLog5
-rw-r--r--monitor/proxy/gproxyvolumemonitor.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c2a78e2e..76b51550 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-07-23 David Zeuthen <davidz@redhat.com>
+
+ * monitor/proxy/gproxyvolumemonitor.c
+ (g_proxy_volume_monitor_finalize): Fix crasher (#544399)
+
2008-07-22 Matthias Clasen <mclasen@redhat.com>
* configure.ac: Post-release bump
diff --git a/monitor/proxy/gproxyvolumemonitor.c b/monitor/proxy/gproxyvolumemonitor.c
index 10ed1645..b0803d34 100644
--- a/monitor/proxy/gproxyvolumemonitor.c
+++ b/monitor/proxy/gproxyvolumemonitor.c
@@ -98,7 +98,11 @@ g_proxy_volume_monitor_finalize (GObject *object)
char *match_rule;
GObjectClass *parent_class;
- parent_class = G_OBJECT_CLASS (G_OBJECT_GET_CLASS (object));
+ /* since GProxyVolumeMonitor is a non-instantiatable type we're dealing with a
+ * sub-type here. So we need to look at the grandparent sub-type to get the
+ * parent class for GProxyVolumeMonitor */
+ parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (
+ g_type_class_peek_parent (G_OBJECT_GET_CLASS (object))));
monitor = G_PROXY_VOLUME_MONITOR (object);
@@ -108,6 +112,7 @@ g_proxy_volume_monitor_finalize (GObject *object)
dbus_connection_remove_filter (monitor->session_bus, filter_function, monitor);
match_rule = get_match_rule (monitor);
+ dbus_error_init (&dbus_error);
dbus_bus_remove_match (monitor->session_bus,
match_rule,
&dbus_error);