diff options
Diffstat (limited to 'recipes-qt/qt5/qtdeclarative/0002-Fix-memory-leak-in-V4.patch')
-rw-r--r-- | recipes-qt/qt5/qtdeclarative/0002-Fix-memory-leak-in-V4.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qtdeclarative/0002-Fix-memory-leak-in-V4.patch b/recipes-qt/qt5/qtdeclarative/0002-Fix-memory-leak-in-V4.patch new file mode 100644 index 00000000..423681ee --- /dev/null +++ b/recipes-qt/qt5/qtdeclarative/0002-Fix-memory-leak-in-V4.patch @@ -0,0 +1,44 @@ +From 80e63c5a2981473dd7ee3a4f382e54948bb99f75 Mon Sep 17 00:00:00 2001 +From: Gunnar Sletta <gunnar@crimson.no> +Date: Thu, 19 Jan 2017 09:05:46 +0100 +Subject: [PATCH 2/3] Fix memory leak in V4 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Transitions contain both an id and a set of flags, but the sorting +failed to take the flags into account in the operator<. As a result +we would some times end up with duplicate entries if the same id +was added multiple times with different flags. + +If the same id was added again and again with varying flags, this +could lead to an ever expanding list filled with duplicate entries. + +Fix this by also taking flags into account in operator< so that +operator< and operator== are symetric and the list gets correctly +sorted. + +Change-Id: I762ec3f0c5b4ed9a1aecb9a883187a0445491591 +Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> +Reviewed-by: Robin Burchell <robin.burchell@crimson.no> +Signed-off-by: Gordan Markuš <gordan.markus@pelagicore.com> +--- + src/qml/jsruntime/qv4internalclass_p.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/qml/jsruntime/qv4internalclass_p.h b/src/qml/jsruntime/qv4internalclass_p.h +index dcda949..1d8ef4b 100644 +--- a/src/qml/jsruntime/qv4internalclass_p.h ++++ b/src/qml/jsruntime/qv4internalclass_p.h +@@ -234,7 +234,7 @@ struct InternalClassTransition + { return id == other.id && flags == other.flags; } + + bool operator<(const InternalClassTransition &other) const +- { return id < other.id; } ++ { return id < other.id || (id == other.id && flags < other.flags); } + }; + + struct InternalClass : public QQmlJS::Managed { +-- +2.9.3 + |