summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qobject.cpp
diff options
context:
space:
mode:
authorShane Kearns <shane.kearns@sosco.com>2009-09-16 13:53:21 (GMT)
committerShane Kearns <shane.kearns@sosco.com>2009-09-16 13:53:21 (GMT)
commit90fce5ee772b6cedb3f896adcc3d986ed7a1af57 (patch)
treeb2c315064e99cf7246e9c20e0521dd8e5140d14b /src/corelib/kernel/qobject.cpp
parent504dd08854a8f6519a0529014df2233938b82728 (diff)
parentb2e96b5ebe337ec52682503b239145f187751c25 (diff)
downloadQt-90fce5ee772b6cedb3f896adcc3d986ed7a1af57.zip
Qt-90fce5ee772b6cedb3f896adcc3d986ed7a1af57.tar.gz
Qt-90fce5ee772b6cedb3f896adcc3d986ed7a1af57.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6
Diffstat (limited to 'src/corelib/kernel/qobject.cpp')
-rw-r--r--src/corelib/kernel/qobject.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index b4e3959..a8120cf 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -129,7 +129,7 @@ QObjectData::~QObjectData() {}
QDeclarativeData::~QDeclarativeData() {}
QObjectPrivate::QObjectPrivate(int version)
- : threadData(0), connectionLists(0), senders(0), currentSender(0), currentChildBeingDeleted(0), declarativeData(0), objectGuards(0)
+ : threadData(0), connectionLists(0), senders(0), currentSender(0), currentChildBeingDeleted(0)
{
if (version != QObjectPrivateVersion)
qFatal("Cannot mix incompatible Qt libraries");
@@ -496,18 +496,14 @@ void QMetaObject::changeGuard(QObject **ptr, QObject *o)
void QObjectPrivate::clearGuards(QObject *object)
{
QObjectPrivate *priv = QObjectPrivate::get(object);
- QGuard<QObject> *guard = priv->objectGuards;
+ QGuard<QObject> *guard = priv->extraData ? priv->extraData->objectGuards : 0;
while (guard) {
- guard->o = 0;
+ QGuard<QObject> *g = guard;
guard = guard->next;
- }
- while (priv->objectGuards) {
- guard = priv->objectGuards;
- guard->prev = 0;
- if (guard->next) guard->next->prev = &priv->objectGuards;
- priv->objectGuards = guard->next;
- guard->next = 0;
- guard->objectDestroyed(object);
+ g->o = 0;
+ g->prev = 0;
+ g->next = 0;
+ g->objectDestroyed(object);
}
if (!priv->hasGuards)