diff options
| author | Morten Sørvig <morten.sorvig@qt.io> | 2023-01-09 14:22:31 +0100 |
|---|---|---|
| committer | Morten Johan Sørvig <morten.sorvig@qt.io> | 2023-01-16 01:03:46 +0000 |
| commit | 9a1256fa5e1332edbc31c5ecab3da520cf259315 (patch) | |
| tree | 01db986c870bb24f262d073742b64c25091e14fb /src/qml/memory/qv4stacklimits.cpp | |
| parent | 1d72f21415609ce7a8b665a71776d7ac26f1d4ee (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.cpp | 12 |
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) |
