diff options
author | Glenn Watson <glenn.watson@nokia.com> | 2012-06-20 11:36:31 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-20 06:04:01 +0200 |
commit | 0bc4a13048c030d52fd37debba0e934e1dd49b83 (patch) | |
tree | 7184adace91130b43f310eb4c0a7982016f2885d | |
parent | 7c962ceba942f3adf2a77424d73504608a6fceac (diff) |
Fix some of the bundle test failures on Windows.
The Q_PACKED macro is not supported on Windows, so the code that
serializes the bundles does not work with the loading code. Change
the maximum bundle size to 4 GB so that struct packing is not
required.
Change-Id: Ia7c8aa856ac532732eb6e76df813f46acd66b6f2
Reviewed-by: Martin Jones <martin.jones@nokia.com>
-rw-r--r-- | src/qml/qml/qqmlbundle.cpp | 8 | ||||
-rw-r--r-- | src/qml/qml/qqmlbundle_p.h | 16 |
2 files changed, 12 insertions, 12 deletions
diff --git a/src/qml/qml/qqmlbundle.cpp b/src/qml/qml/qqmlbundle.cpp index fa47cb505d..622242c0f7 100644 --- a/src/qml/qml/qqmlbundle.cpp +++ b/src/qml/qml/qqmlbundle.cpp @@ -65,7 +65,7 @@ const char *QQmlBundle::FileEntry::contents() const { return &data[fileNameLength]; } -quint64 QQmlBundle::FileEntry::fileSize() const +quint32 QQmlBundle::FileEntry::fileSize() const { return size - (sizeof(FileEntry) + fileNameLength); } @@ -174,7 +174,7 @@ bool QQmlBundle::isBundleHeader(const char *data, int size) // // find a some empty space we can use to insert new entries. // -const QQmlBundle::Entry *QQmlBundle::findInsertPoint(quint64 size, qint64 *offset) +const QQmlBundle::Entry *QQmlBundle::findInsertPoint(quint32 size, qint32 *offset) { const char *ptr = (const char *) buffer + qmlBundleHeaderLength; const char *end = (const char *) buffer + bufferSize; @@ -255,7 +255,7 @@ bool QQmlBundle::add(const QString &name, const QString &fileName) file.seek(file.size()); FileEntry cmd; - const quint64 inputFileSize = inputFile.size(); + const quint32 inputFileSize = inputFile.size(); cmd.kind = Entry::File; cmd.link = 0; @@ -298,7 +298,7 @@ bool QQmlBundle::addMetaLink(const QString &fileName, FileEntry cmd; - const quint64 inputFileSize = data.size(); + const quint32 inputFileSize = data.size(); cmd.kind = Entry::Link; cmd.link = fileEntry->link; diff --git a/src/qml/qml/qqmlbundle_p.h b/src/qml/qml/qqmlbundle_p.h index 8c2cc55d95..c34e2d91d5 100644 --- a/src/qml/qml/qqmlbundle_p.h +++ b/src/qml/qml/qqmlbundle_p.h @@ -57,7 +57,7 @@ class Q_QML_PRIVATE_EXPORT QQmlBundle { Q_DISABLE_COPY(QQmlBundle) public: - struct Q_PACKED Q_QML_PRIVATE_EXPORT Entry + struct Q_QML_PRIVATE_EXPORT Entry { enum Kind { File = 123, // Normal file @@ -68,24 +68,24 @@ public: }; int kind; - quint64 size; + quint32 size; }; - struct Q_PACKED Q_QML_PRIVATE_EXPORT RawEntry : public Entry + struct Q_QML_PRIVATE_EXPORT RawEntry : public Entry { char data[]; // trailing data }; - struct Q_PACKED Q_QML_PRIVATE_EXPORT FileEntry : public Entry + struct Q_QML_PRIVATE_EXPORT FileEntry : public Entry { - quint64 link; + quint32 link; int fileNameLength; char data[]; // trailing data QString fileName() const; bool isFileName(const QString &) const; - quint64 fileSize() const; + quint32 fileSize() const; const char *contents() const; }; @@ -112,12 +112,12 @@ public: static int bundleHeaderLength(); static bool isBundleHeader(const char *, int size); private: - const Entry *findInsertPoint(quint64 size, qint64 *offset); + const Entry *findInsertPoint(quint32 size, qint32 *offset); private: QFile file; uchar *buffer; - quint64 bufferSize; + quint32 bufferSize; bool opened:1; bool headerWritten:1; }; |