diff options
Diffstat (limited to 'src/qml/qml/qqmlvme.cpp')
-rw-r--r-- | src/qml/qml/qqmlvme.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlvme.cpp b/src/qml/qml/qqmlvme.cpp index 72d4ab7e8f..c60f4edc80 100644 --- a/src/qml/qml/qqmlvme.cpp +++ b/src/qml/qml/qqmlvme.cpp @@ -120,6 +120,18 @@ void QQmlVMEGuard::guard(QQmlObjectCreator *creator) m_contexts[0] = creator->parentContextData(); } +void QQmlVMEGuard::unguard(QObject *object) +{ + for (int ii = 0; ii < m_objectCount; ++ii) { + if (m_objects[ii] == object) { + if (ii < m_objectCount - 1) + ::memmove((void *) m_objects[ii], (void *) m_objects[ii + 1], sizeof(QPointer<QObject> *)); + delete m_objects[--m_objectCount]; + break; + } + } +} + void QQmlVMEGuard::clear() { delete [] m_objects; |