diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-08-29 21:23:04 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-02 17:27:36 +0200 |
commit | d8e31c098dade7280f21ca9781ba11bee5e4f201 (patch) | |
tree | 793b7e5566e75b9c0ef45693d36cb57839a4233c /src/qml/jsruntime/qv4internalclass.cpp | |
parent | edee5c3dc0d922ec3b6a44d66193e9a57b8a979e (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.cpp | 13 |
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 |