diff options
author | Rolf Eike Beer <eb@emlix.com> | 2018-09-07 11:21:58 +0200 |
---|---|---|
committer | Rolf Eike Beer <eb@emlix.com> | 2018-09-10 07:18:52 +0000 |
commit | 8415875d286f2ecc78e77e9c19972f323f76054a (patch) | |
tree | 0a0d93524b3dec83b8ccd9000a281b9ded25d1c8 | |
parent | 0b157e9ab3b2b6282e567e656b5f6b8c713a9ac3 (diff) |
make pointer operations more explicit when building string table
Change-Id: Iff8a45cecc63751f0daae5844f89cf452619d58d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | src/qml/compiler/qv4compiler.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/qml/compiler/qv4compiler.cpp b/src/qml/compiler/qv4compiler.cpp index bbce317b8e..d25913da6d 100644 --- a/src/qml/compiler/qv4compiler.cpp +++ b/src/qml/compiler/qv4compiler.cpp @@ -104,14 +104,15 @@ void QV4::Compiler::StringTableGenerator::serialize(CompiledData::Unit *unit) s->allocAndCapacityReservedFlag = 0; s->offsetOn32Bit = sizeof(QV4::CompiledData::String); s->offsetOn64Bit = sizeof(QV4::CompiledData::String); + + ushort *uc = reinterpret_cast<ushort *>(reinterpret_cast<char *>(s) + sizeof(*s)); #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN - memcpy(s + 1, qstr.constData(), s->size * sizeof(ushort)); + memcpy(uc, qstr.constData(), s->size * sizeof(ushort)); #else - ushort *uc = reinterpret_cast<ushort *>(s + 1); for (int i = 0; i < s->size; ++i) uc[i] = qToLittleEndian<ushort>(qstr.at(i).unicode()); #endif - reinterpret_cast<ushort *>(s + 1)[s->size] = 0; + uc[s->size] = 0; stringData += QV4::CompiledData::String::calculateSize(qstr); } |