aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4internalclass.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-08-29 21:23:04 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-02 17:27:36 +0200
commitd8e31c098dade7280f21ca9781ba11bee5e4f201 (patch)
tree793b7e5566e75b9c0ef45693d36cb57839a4233c /src/qml/jsruntime/qv4internalclass.cpp
parentedee5c3dc0d922ec3b6a44d66193e9a57b8a979e (diff)
Cleanup calls to Object::setPrototype()
Rather use the correct internalClass directly when constructing the objects. Change-Id: I8e916f1ce8f83d291c08ca6332fe85b1f57b90b5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4internalclass.cpp')
-rw-r--r--src/qml/jsruntime/qv4internalclass.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/qml/jsruntime/qv4internalclass.cpp b/src/qml/jsruntime/qv4internalclass.cpp
index 59b1989e72..16038b0b68 100644
--- a/src/qml/jsruntime/qv4internalclass.cpp
+++ b/src/qml/jsruntime/qv4internalclass.cpp
@@ -331,11 +331,16 @@ void InternalClass::destroy()
void InternalClass::markObjects()
{
- if (prototype)
- prototype->mark();
+ // all prototype changes are done on the empty class
+ Q_ASSERT(!prototype);
+
for (QHash<Transition, InternalClass *>::ConstIterator it = transitions.begin(), end = transitions.end();
- it != end; ++it)
- it.value()->markObjects();
+ it != end; ++it) {
+ if (it.key().flags == Transition::ProtoChange) {
+ Q_ASSERT(it.value()->prototype);
+ it.value()->prototype->mark();
+ }
+ }
}
QT_END_NAMESPACE