aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit/qv4regalloc.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-01-26 00:34:21 +0100
committerLiang Qi <liang.qi@qt.io>2017-01-26 00:34:21 +0100
commit0076c44d3993f377ad6417d3bb08109b608dfbd2 (patch)
tree498a1f3d0997da8e3959e6a1d47071d56a6ce900 /src/qml/jit/qv4regalloc.cpp
parent5f0eab2df3c82a71f70ea5a6535541fa786c6a78 (diff)
parent9aed949bb99b9bf328322457a02ad1a9fb330f2d (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: src/quick/util/qquickutilmodule.cpp tools/qmllint/main.cpp Change-Id: Ic2283f88c293ca7fc776de3e83eb4c7812309d8a
Diffstat (limited to 'src/qml/jit/qv4regalloc.cpp')
-rw-r--r--src/qml/jit/qv4regalloc.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/qml/jit/qv4regalloc.cpp b/src/qml/jit/qv4regalloc.cpp
index 3fb0815299..f2ae7e117a 100644
--- a/src/qml/jit/qv4regalloc.cpp
+++ b/src/qml/jit/qv4regalloc.cpp
@@ -973,7 +973,15 @@ private:
break;
Q_ASSERT(!i->isFixedInterval());
- _liveIntervals.push_back(i);
+ auto it = _liveIntervals.begin();
+ for (; it != _liveIntervals.end(); ++it) {
+ if ((*it)->temp() == i->temp()) {
+ *it = i;
+ break;
+ }
+ }
+ if (it == _liveIntervals.end())
+ _liveIntervals.push_back(i);
// qDebug() << "-- Activating interval for temp" << i->temp().index;
_unprocessedReverseOrder.removeLast();