summaryrefslogtreecommitdiffstats
path: root/util/unicode
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@gmail.com>2018-07-12 17:44:29 +1000
committerLorn Potter <lorn.potter@gmail.com>2018-07-17 08:48:14 +0000
commita2efb8d94bb8e860d8616f56c4f40e7c41eb3810 (patch)
tree81084652842a16057f92dbcbc3df5c0b119e38ac /util/unicode
parent51a614a419e9745d275793e36b6aab295bf1e8e3 (diff)
wasm: fix unicode toUpper issueswip/webassembly
see https://github.com/kripken/emscripten/issues/4540 On large bitfields, emscripten creates types such as i472, which 'legalization passes don't know how to convert into legal code' Adding a dummy field every 64 bits forces alignment which in turn forces emscripten to create i64 types instead. Task-number: QTBUG-66621 Task-number: QTBUG-69421 Change-Id: I5bfd2079ac8f35ced8b59a1d2e3c657993a70986 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'util/unicode')
-rw-r--r--util/unicode/main.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/util/unicode/main.cpp b/util/unicode/main.cpp
index 0f3c28137d..45bd53a487 100644
--- a/util/unicode/main.cpp
+++ b/util/unicode/main.cpp
@@ -2473,6 +2473,10 @@ static QByteArray createPropertyInfo()
out += ", ";
out += QByteArray::number( p.lowerCaseDiff );
out += ", ";
+ out += "#ifdef Q_OS_WASM \n"
+// " unsigned char : 0; //wasm 64 packing trick \n"
+ out += "#endif \n"
+ out += ", ";
// " ushort upperCaseSpecial : 1;\n"
// " signed short upperCaseDiff : 15;\n"
out += QByteArray::number( p.upperCaseSpecial );
@@ -2497,6 +2501,10 @@ static QByteArray createPropertyInfo()
// " ushort nfQuickCheck : 8;\n"
out += QByteArray::number( p.nfQuickCheck );
out += ", ";
+ out += "#ifdef Q_OS_WASM \n"
+// " unsigned char : 0; //wasm 64 packing trick \n"
+ out += "#endif \n"
+ out += ", ";
// " ushort graphemeBreakClass : 5; /* 5 used */\n"
// " ushort wordBreakClass : 5; /* 5 used */\n"
// " ushort sentenceBreakClass : 8; /* 4 used */\n"