2009-09-09 Mark Doffman <mark.doffman@codethink.co.uk>
authorMark Doffman <mdoff@altair-voyager.(none)>
Wed, 9 Sep 2009 09:03:09 +0000 (10:03 +0100)
committerMark Doffman <mdoff@altair-voyager.(none)>
Wed, 9 Sep 2009 09:03:09 +0000 (10:03 +0100)
        Remove memory leaks from non de-referenced messages.

        Fix provided by:
                Mario Lang

atk-adaptor/event.c
atk-adaptor/tree-adaptor.c

index 2039b63..58c7e1c 100644 (file)
@@ -267,6 +267,8 @@ emit_rect(AtkObject  *accessible,
   dbus_message_iter_close_container (&iter, &variant);
 
   dbus_connection_send(atk_adaptor_app_data->bus, sig, NULL);
+
+  dbus_message_unref (sig);
 }
 
 /*---------------------------------------------------------------------------*/
index c3c6c11..c292bbd 100644 (file)
@@ -48,30 +48,41 @@ void
 spi_emit_cache_removal (guint ref,  DBusConnection *bus)
 {
   DBusMessage *message;
-  DBusMessageIter iter;
-  gchar *path;
 
-  message = dbus_message_new_signal ("/org/freedesktop/atspi/tree", SPI_DBUS_INTERFACE_TREE, "removeAccessible");
+  if ((message = dbus_message_new_signal ("/org/freedesktop/atspi/tree",
+                                          SPI_DBUS_INTERFACE_TREE,
+                                          "removeAccessible"))) {
+    DBusMessageIter iter;
+    gchar *path;
 
-  dbus_message_iter_init_append (message, &iter);
+    dbus_message_iter_init_append (message, &iter);
 
-  path = atk_dbus_ref_to_path (ref);
-  dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &path);
+    path = atk_dbus_ref_to_path (ref);
+    dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &path);
 
-  dbus_connection_send(bus, message, NULL);
+    dbus_connection_send(bus, message, NULL);
+
+    dbus_message_unref (message);
+  }
 }
 
 void
 spi_emit_cache_update (AtkObject *accessible, DBusConnection *bus)
 {
-   DBusMessage *message;
-   DBusMessageIter iter;
-   message = dbus_message_new_signal ("/org/freedesktop/atspi/tree", SPI_DBUS_INTERFACE_TREE, "updateAccessible");
+  DBusMessage *message;
+
+  if ((message = dbus_message_new_signal ("/org/freedesktop/atspi/tree",
+                                          SPI_DBUS_INTERFACE_TREE,
+                                          "updateAccessible"))) {
+    DBusMessageIter iter;
+
+    dbus_message_iter_init_append (message, &iter);
+    spi_atk_append_accessible (accessible, &iter);
 
-   dbus_message_iter_init_append (message, &iter);
-   spi_atk_append_accessible (accessible, &iter);
+    dbus_connection_send(bus, message, NULL);
 
-   dbus_connection_send(bus, message, NULL);
+    dbus_message_unref (message);
+  }
 }