aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4arraydata_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-06-19 16:12:22 +0200
committerLars Knoll <lars.knoll@qt.io>2018-06-19 14:20:44 +0000
commitd1693c14b4e7f7d4a8ab4b2e876d9cf43a621e2e (patch)
tree9ce0e6c8d75f2df6654a7dd03d2e7441ea9c1e85 /src/qml/jsruntime/qv4arraydata_p.h
parent27a6b122343322a02e0fe26fb76c05f6105c4b94 (diff)
revert change 353164263c55825a0ec72d30128c50560c626334
The change was too aggressive in trying to avoid marking the array data. We didn't catch all cases where on could be inserting a GC controlled object into the array data. Let's be safe and always mark the content of array data objects. Task-number: QTBUG-68894 Change-Id: Ifbb628be898c0903596b1a483212384295b01df5 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4arraydata_p.h')
-rw-r--r--src/qml/jsruntime/qv4arraydata_p.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h
index b2573b4491..7ec060f9c6 100644
--- a/src/qml/jsruntime/qv4arraydata_p.h
+++ b/src/qml/jsruntime/qv4arraydata_p.h
@@ -92,7 +92,7 @@ namespace Heap {
#define ArrayDataMembers(class, Member) \
Member(class, NoMark, ushort, type) \
- Member(class, NoMark, ushort, needsMark) \
+ Member(class, NoMark, ushort, unused) \
Member(class, NoMark, uint, offset) \
Member(class, NoMark, PropertyAttributes *, attrs) \
Member(class, NoMark, SparseArray *, sparse) \
@@ -147,8 +147,6 @@ struct SimpleArrayData : public ArrayData {
uint mappedIndex(uint index) const { index += offset; if (index >= values.alloc) index -= values.alloc; return index; }
const Value &data(uint index) const { return values[mappedIndex(index)]; }
void setData(EngineBase *e, uint index, Value newVal) {
- if (newVal.isManaged())
- needsMark = true;
values.set(e, mappedIndex(index), newVal);
}