From fa987d44417528856d5e80ed7b48ba99e19fa307 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Thu, 19 Mar 2020 10:47:29 +0100 Subject: MetaObject: Store the QMetaType of the methods This does the analog of 46f407126ef3e94d59254012cdc34d6a4ad2faf2 for the methods we care about (signals, slots, Q_INVOKABLEs). In addition to the actual QMetaType, we store an array with offsets so that we later can do a mapping from methodIndex to metatype. The newly added QMetaMethod::{return,parameter}MetaType methods can then be used to retrieve the metatypes. This does however require that all involved types are complete. This is unfortunately not a feasible requirement. Thus, we only populate the metatype array on a best effort basis. For any incomplete type, we store QMetaType::Unknown. Then, when accessing the metatype, we fall back to the old string based code base if it's Unknown. Squashes "moc: support incomplete types" and "Fix compile failures after QMetaMethod change" Fixes: QTBUG-82932 Change-Id: I6b7a587cc364b7cad0c158d6de54e8a204289ad4 Reviewed-by: Lars Knoll --- src/network/socket/qabstractsocket.h | 2 ++ src/network/socket/qabstractsocketengine_p.h | 1 + 2 files changed, 3 insertions(+) (limited to 'src/network/socket') diff --git a/src/network/socket/qabstractsocket.h b/src/network/socket/qabstractsocket.h index 46d25d5677..f76467b2a6 100644 --- a/src/network/socket/qabstractsocket.h +++ b/src/network/socket/qabstractsocket.h @@ -60,6 +60,8 @@ class QAuthenticator; class Q_NETWORK_EXPORT QAbstractSocket : public QIODevice { Q_OBJECT + Q_MOC_INCLUDE() + public: enum SocketType { TcpSocket, diff --git a/src/network/socket/qabstractsocketengine_p.h b/src/network/socket/qabstractsocketengine_p.h index 112e7032d6..3d9ce96cb3 100644 --- a/src/network/socket/qabstractsocketengine_p.h +++ b/src/network/socket/qabstractsocketengine_p.h @@ -83,6 +83,7 @@ public: class Q_AUTOTEST_EXPORT QAbstractSocketEngine : public QObject { Q_OBJECT + Q_MOC_INCLUDE() public: static QAbstractSocketEngine *createSocketEngine(QAbstractSocket::SocketType socketType, const QNetworkProxy &, QObject *parent); -- cgit v1.2.3