summaryrefslogtreecommitdiff
path: root/atspi/atspi-event-listener.c
diff options
context:
space:
mode:
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>2020-10-06 10:30:59 +0200
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>2021-02-12 14:43:26 +0100
commit7fdbb0f96b464ad8753ec7468412dbb57c65fa45 (patch)
tree22ccbfc116438e38442846e41e5b1630c2a40cb2 /atspi/atspi-event-listener.c
parentc6b2af03425bacfef25b08f4730d6f7628743681 (diff)
downloadat-spi2-core-7fdbb0f96b464ad8753ec7468412dbb57c65fa45.tar.gz
Fix memory leaks
* Release memory before pointer overwrite. * Reduce memory leaks reported in ref_accessible. * Remove leak connected with atspi_state_type_get_type. * Remove memory leak in atspi_event_listener_register_from_callback_full. * Reduce memory leaks reported on program exit. Change-Id: Ifde65dd44643f2e58442cf70809703f979436e09
Diffstat (limited to 'atspi/atspi-event-listener.c')
-rw-r--r--atspi/atspi-event-listener.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/atspi/atspi-event-listener.c b/atspi/atspi-event-listener.c
index 82e39b6d..00957dd1 100644
--- a/atspi/atspi-event-listener.c
+++ b/atspi/atspi-event-listener.c
@@ -393,6 +393,12 @@ listener_entry_free (EventListenerEntry *e)
g_free (e->name);
if (e->detail) g_free (e->detail);
callback_unref (callback);
+
+ for (int i=0; i < e->properties->len; i++)
+ g_free (g_array_index (e->properties, char*, i));
+
+ g_array_free (e->properties, TRUE);
+
g_free (e);
}
@@ -1053,6 +1059,7 @@ _atspi_dbus_handle_event (DBusConnection *bus, DBusMessage *message, void *data)
accessible = _atspi_dbus_return_accessible_from_iter (&iter_variant);
if (!strcmp (category, "ScreenReader"))
{
+ g_object_unref (e.source);
e.source = accessible;
}
else
@@ -1112,6 +1119,7 @@ _atspi_dbus_handle_event (DBusConnection *bus, DBusMessage *message, void *data)
g_free (name);
g_free (detail);
g_object_unref (e.source);
+ g_object_unref (e.sender);
g_value_unset (&e.any_data);
return DBUS_HANDLER_RESULT_HANDLED;
}