diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2016-07-14 20:39:58 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@qt.io> | 2016-08-03 08:49:16 +0000 |
commit | c25c95ba22ef843d09b22f9524a04585dc26f2bd (patch) | |
tree | 1da57d1b577a56a0b1c4db530ce4c6fb9b9a8a7f /src/qml/compiler/qv4compileddata_p.h | |
parent | 5b620ed68909c63f3a5a892577a07f66d35c2923 (diff) |
Fix endianness in constant handling
When running on a big-endian system, we need to convert the constant values
into big-endian once and then it's possible to access them directly.
Change-Id: I655bad7b7734e3b95e79e5f688f0b4041d0c41c4
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4compileddata_p.h')
-rw-r--r-- | src/qml/compiler/qv4compileddata_p.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h index 519708f089..1f253e02fd 100644 --- a/src/qml/compiler/qv4compileddata_p.h +++ b/src/qml/compiler/qv4compileddata_p.h @@ -691,8 +691,8 @@ struct Unit const RegExp *regexpAt(int index) const { return reinterpret_cast<const RegExp*>(reinterpret_cast<const char *>(this) + offsetToRegexpTable + index * sizeof(RegExp)); } - const QV4::Value *constants() const { - return reinterpret_cast<const QV4::Value*>(reinterpret_cast<const char *>(this) + offsetToConstantTable); + const LEUInt64 *constants() const { + return reinterpret_cast<const LEUInt64*>(reinterpret_cast<const char *>(this) + offsetToConstantTable); } const JSClassMember *jsClassAt(int idx, int *nMembers) const { @@ -853,6 +853,9 @@ struct Q_QML_PRIVATE_EXPORT CompilationUnit : public QQmlRefCount QHash<int, IdentifierHash<int>> namedObjectsPerComponentCache; IdentifierHash<int> namedObjectsPerComponent(int componentObjectIndex); + // pointers either to data->constants() or little-endian memory copy. + const Value* constants; + void finalize(QQmlEnginePrivate *engine); int totalBindingsCount; // Number of bindings used in this type |