aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2016-07-25 09:25:11 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2016-08-04 06:21:40 +0000
commit0a4cebe6d35abe1019c0d86cf933af972dc8bc6c (patch)
tree049ae26d0bb28a95fe470f9ca21280ebdb0c1f12
parentf18e81a20d843b8f5b03a6d38a6e985227a42739 (diff)
Fix recursion during aggressive GC
With aggressive GC enabled we may end up calling the GC recursively, which does not work at all, so disable that. Change-Id: I9ce0abbdb7b2bfa8499b33fd0be0d6e4a5212a15 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
-rw-r--r--src/qml/memory/qv4mm.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp
index 885784d7d3..7ab6d15041 100644
--- a/src/qml/memory/qv4mm.cpp
+++ b/src/qml/memory/qv4mm.cpp
@@ -42,6 +42,7 @@
#include <QTime>
#include <QMap>
+#include <QScopedValueRollback>
#include <iostream>
#include <cstdlib>
@@ -542,6 +543,8 @@ void MemoryManager::runGC()
return;
}
+ QScopedValueRollback<bool> gcBlocker(m_d->gcBlocked, true);
+
if (!m_d->gcStats) {
mark();
sweep();