aboutsummaryrefslogtreecommitdiffstats
path: root/src
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 /src
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>
Diffstat (limited to 'src')
-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();