diff options
author | Justin McPherson <justin.mcpherson@nokia.com> | 2010-01-29 06:51:18 (GMT) |
---|---|---|
committer | Justin McPherson <justin.mcpherson@nokia.com> | 2010-01-29 06:51:18 (GMT) |
commit | 245f2d6d8bf32dcfa28501a9944de00e1e4e1875 (patch) | |
tree | bba1eb8796905fb1ed3d92c59f8841cf848bf2aa /src/corelib/kernel/qmetaobject.cpp | |
parent | 7123ef04484f283ffa30ece8cb73f541bd81e830 (diff) | |
parent | 2f91e9ce0e02f613d68b5b59d00b61c8f4f12c68 (diff) | |
download | Qt-245f2d6d8bf32dcfa28501a9944de00e1e4e1875.zip Qt-245f2d6d8bf32dcfa28501a9944de00e1e4e1875.tar.gz Qt-245f2d6d8bf32dcfa28501a9944de00e1e4e1875.tar.bz2 |
Merge ../../qt/master
Conflicts:
tests/auto/tests.xml
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
-rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index d391893..be1b2ae 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -492,10 +492,14 @@ static inline int indexOfMethodRelative(const QMetaObject **baseObject, const char *method, bool normalizeStringData) { - while (*baseObject) { + const QMetaObject *m; + for (m = *baseObject; m; m = *baseObject = m->d.superdata) { const QMetaObject *const m = *baseObject; int i = (MethodType == MethodSignal && priv(m->d.data)->revision >= 4) ? (priv(m->d.data)->signalCount - 1) : (priv(m->d.data)->methodCount - 1); + if (i < 0) + continue; + const int end = (MethodType == MethodSlot && priv(m->d.data)->revision >= 4) ? (priv(m->d.data)->signalCount) : 0; if (!normalizeStringData) { @@ -513,7 +517,6 @@ static inline int indexOfMethodRelative(const QMetaObject **baseObject, return i; } } - *baseObject = m->d.superdata; } return -1; } |