summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/qwasmservices.cpp
diff options
context:
space:
mode:
authorAlexandra Cherdantseva <[email protected]>2020-01-17 12:32:27 +0300
committerAlexandra Cherdantseva <[email protected]>2020-01-22 19:26:22 +0300
commit0a4c5b5119ccefc355fe737f03ec330e70c33ec9 (patch)
treee550b4e29b1e677fc37b0c491b15b1c977b69c10 /src/plugins/platforms/wasm/qwasmservices.cpp
parent21ee3b17b746f6d2e0e59836dfc4b9d0587a6bec (diff)
wasm: fix redundant string conversions between wasm and JavaScript
Avoid redundant conversions from UTF16 to UTF8 to UTF16 with help of new class QWasmString static methods: + QWasmString::fromQString to convert QString to js string using js Module.UTF16ToString + QWasmString::toQString to convert js string to QString using js Module.stringToUTF16 Fixed document.getElementById calls for cavasId with unicode characters. Change-Id: I3fc55bfeb6aeda75fa3acd85d22cea667b542f38 Reviewed-by: Morten Johan Sørvig <[email protected]> Reviewed-by: Lorn Potter <[email protected]>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmservices.cpp')
-rw-r--r--src/plugins/platforms/wasm/qwasmservices.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/platforms/wasm/qwasmservices.cpp b/src/plugins/platforms/wasm/qwasmservices.cpp
index 9328b8c0654..4eee3fe9723 100644
--- a/src/plugins/platforms/wasm/qwasmservices.cpp
+++ b/src/plugins/platforms/wasm/qwasmservices.cpp
@@ -28,6 +28,8 @@
****************************************************************************/
#include "qwasmservices.h"
+#include "qwasmstring.h"
+
#include <QtCore/QUrl>
#include <QtCore/QDebug>
@@ -37,8 +39,8 @@ QT_BEGIN_NAMESPACE
bool QWasmServices::openUrl(const QUrl &url)
{
- QByteArray utf8Url = url.toString().toUtf8();
- emscripten::val::global("window").call<void>("open", emscripten::val(utf8Url.constData()), emscripten::val("_blank"));
+ emscripten::val jsUrl = QWasmString::fromQString(url.toString());
+ emscripten::val::global("window").call<void>("open", jsUrl, emscripten::val("_blank"));
return true;
}