aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4object.cpp')
-rw-r--r--src/qml/jsruntime/qv4object.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp
index 0851b2f5ab..2071e39520 100644
--- a/src/qml/jsruntime/qv4object.cpp
+++ b/src/qml/jsruntime/qv4object.cpp
@@ -42,7 +42,9 @@ void Object::setInternalClass(Heap::InternalClass *ic)
for (uint i = 0; i < ic->size; ++i) {
// Note that some members might have been deleted. The key may be invalid.
const PropertyKey key = ic->nameMap.at(i);
- newMembers->set(scope.engine, i, key.isValid() ? get(key) : Encode::undefined());
+ // fromReturnedValue is safe, we directly write it through the WriteBarrier
+ newMembers->set(scope.engine, i,
+ QV4::Value::fromReturnedValue(key.isValid() ? get(key) : Encode::undefined()));
}
p->internalClass.set(scope.engine, ic);