diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-03-11 11:50:50 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-03-15 16:36:25 +0000 |
commit | ad9726d99c327545aa908856d248198bfeb9bca2 (patch) | |
tree | 3a83a25e433dfefa13af7f8fb142e39b4fbcedb6 /src/corelib/kernel | |
parent | aa21ac1043d58b9749077a237aab51e14f06d16e (diff) |
Dedupe QMetaObject::cast
By implementing in terms of QMetaObject::inherits().
Change-Id: I39a039539b05a20bc1713bd450d8a998c78433aa
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index 8024c97373..4f764e7e78 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -363,14 +363,7 @@ QObject *QMetaObject::cast(QObject *obj) const */ const QObject *QMetaObject::cast(const QObject *obj) const { - if (obj) { - const QMetaObject *m = obj->metaObject(); - do { - if (m == this) - return obj; - } while ((m = m->d.superdata)); - } - return 0; + return (obj && obj->metaObject()->inherits(this)) ? obj : nullptr; } #ifndef QT_NO_TRANSLATION |