aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4compiler.cpp
diff options
context:
space:
mode:
authorRolf Eike Beer <eb@emlix.com>2018-09-07 11:21:58 +0200
committerRolf Eike Beer <eb@emlix.com>2018-09-10 07:18:52 +0000
commit8415875d286f2ecc78e77e9c19972f323f76054a (patch)
tree0a0d93524b3dec83b8ccd9000a281b9ded25d1c8 /src/qml/compiler/qv4compiler.cpp
parent0b157e9ab3b2b6282e567e656b5f6b8c713a9ac3 (diff)
make pointer operations more explicit when building string table
Change-Id: Iff8a45cecc63751f0daae5844f89cf452619d58d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4compiler.cpp')
-rw-r--r--src/qml/compiler/qv4compiler.cpp7
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);
}