diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-02-24 22:15:56 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2017-02-24 23:32:33 +0000 |
commit | 63856135dacba615ebfabdf03be2926dc763358f (patch) | |
tree | a0a29ebb0572b190f837c96c5eb8f4e310601b0d /src/corelib/plugin/qfactoryloader_p.h | |
parent | 14db1d5560254766746446069b6f2456e4444602 (diff) | |
parent | de49839df8abfba1f3ed3c36ef3177e4a9d6ef00 (diff) |
Merge "Merge remote-tracking branch 'origin/5.8' into 5.9" into refs/staging/5.9
Diffstat (limited to 'src/corelib/plugin/qfactoryloader_p.h')
-rw-r--r-- | src/corelib/plugin/qfactoryloader_p.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/corelib/plugin/qfactoryloader_p.h b/src/corelib/plugin/qfactoryloader_p.h index 0876d141c4..70a934c976 100644 --- a/src/corelib/plugin/qfactoryloader_p.h +++ b/src/corelib/plugin/qfactoryloader_p.h @@ -57,11 +57,22 @@ #include "QtCore/qobject.h" #include "QtCore/qstringlist.h" #include "QtCore/qjsonobject.h" +#include "QtCore/qjsondocument.h" #include "QtCore/qmap.h" +#include "QtCore/qendian.h" #include "private/qlibrary_p.h" QT_BEGIN_NAMESPACE +inline QJsonDocument qJsonFromRawLibraryMetaData(const char *raw) +{ + raw += strlen("QTMETADATA "); + // the size of the embedded JSON object can be found 8 bytes into the data (see qjson_p.h), + // but doesn't include the size of the header (8 bytes) + QByteArray json(raw, qFromLittleEndian<uint>(*(const uint *)(raw + 8)) + 8); + return QJsonDocument::fromBinaryData(json); +} + class QFactoryLoaderPrivate; class Q_CORE_EXPORT QFactoryLoader : public QObject { |