aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/memory/qv4stacklimits.cpp
diff options
context:
space:
mode:
authorMorten Sørvig <morten.sorvig@qt.io>2023-01-09 14:22:31 +0100
committerMorten Johan Sørvig <morten.sorvig@qt.io>2023-01-16 01:03:46 +0000
commit9a1256fa5e1332edbc31c5ecab3da520cf259315 (patch)
tree01db986c870bb24f262d073742b64c25091e14fb /src/qml/memory/qv4stacklimits.cpp
parent1d72f21415609ce7a8b665a71776d7ac26f1d4ee (diff)
wasm: implement stackProperties()
Implement stackProperties() for Q_OS_WASM using the API provided by emscripten/stack.h, which is in practice more reliable than pthread_attr_getstack(). This API returns the logical stack region, which can be forwarded directly to createStackProperties(). Task-number: QTBUG-109942 Pick-to: 6.5 Change-Id: I123667ca76d51aeb89feac62feab73b72681f1a8 Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/memory/qv4stacklimits.cpp')
-rw-r--r--src/qml/memory/qv4stacklimits.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/qml/memory/qv4stacklimits.cpp b/src/qml/memory/qv4stacklimits.cpp
index 403f4ba2d7..663ece09a2 100644
--- a/src/qml/memory/qv4stacklimits.cpp
+++ b/src/qml/memory/qv4stacklimits.cpp
@@ -31,6 +31,8 @@
# include <unistd.h>
#elif defined(Q_OS_INTEGRITY)
# include <INTEGRITY.h>
+#elif defined(Q_OS_WASM)
+# include <emscripten/stack.h>
#endif
QT_BEGIN_NAMESPACE
@@ -214,6 +216,16 @@ StackProperties stackProperties()
#endif
}
+#elif defined(Q_OS_WASM)
+
+StackProperties stackProperties()
+{
+ const uintptr_t base = emscripten_stack_get_base();
+ const uintptr_t end = emscripten_stack_get_end();
+ const size_t size = base - end;
+ return createStackProperties(reinterpret_cast<void *>(base), size);
+}
+
#else
StackProperties stackPropertiesGeneric(qsizetype stackSize = 0)