diff options
author | Bartlomiej Grzelewski <b.grzelewski@samsung.com> | 2020-10-06 10:30:59 +0200 |
---|---|---|
committer | Bartlomiej Grzelewski <b.grzelewski@samsung.com> | 2021-02-12 14:43:26 +0100 |
commit | 7fdbb0f96b464ad8753ec7468412dbb57c65fa45 (patch) | |
tree | 22ccbfc116438e38442846e41e5b1630c2a40cb2 /atspi/atspi-event-listener.c | |
parent | c6b2af03425bacfef25b08f4730d6f7628743681 (diff) | |
download | at-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.c | 8 |
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; } |