1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
From 4536e25ac929d8d37ffbbba0642de662bcc9f891 Mon Sep 17 00:00:00 2001
From: David Hallas <david@davidhallas.dk>
Date: Wed, 18 Jul 2018 23:20:18 +0200
Subject: Fixes memory leak in KItemListViewAccessible
Summary: The KItemListViewAccessible class has a list of QAccessibleInterface pointers in a member variable m_cells. The problem is that when new entries are created, the newly allocated pointer is not stored in the list, only a nullptr is store, this renders the cleanup code in the destructor useless. This patch simply stores the pointer in the list, causing the destructor to correctly free the memory.
Test Plan: I found this issue using address sanitizer. Simply building Dolphin with -fsanitize=address and opening a window caused the memory leak.
Reviewers: #dolphin, jtamate, elvisangelaccio
Reviewed By: #dolphin, jtamate, elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D14168
---
src/kitemviews/kitemlistviewaccessible.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/kitemviews/kitemlistviewaccessible.cpp b/src/kitemviews/kitemlistviewaccessible.cpp
index 69c126f..4d1b28b 100644
--- a/src/kitemviews/kitemlistviewaccessible.cpp
+++ b/src/kitemviews/kitemlistviewaccessible.cpp
@@ -78,6 +78,7 @@ QAccessibleInterface* KItemListViewAccessible::cell(int index) const
QAccessibleInterface* child = m_cells.at(index);
if (!child) {
child = new KItemListAccessibleCell(view(), index);
+ m_cells.insert(index, child);
QAccessible::registerAccessibleInterface(child);
}
return child;
--
cgit v0.11.2
|