summaryrefslogtreecommitdiff
path: root/debian/patches/dyson-jsruntime-MemoryManager.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/dyson-jsruntime-MemoryManager.patch')
-rw-r--r--debian/patches/dyson-jsruntime-MemoryManager.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/debian/patches/dyson-jsruntime-MemoryManager.patch b/debian/patches/dyson-jsruntime-MemoryManager.patch
new file mode 100644
index 0000000..bde5c3b
--- /dev/null
+++ b/debian/patches/dyson-jsruntime-MemoryManager.patch
@@ -0,0 +1,30 @@
+Index: qtdeclarative-opensource-src-5.2.1/src/qml/jsruntime/qv4mm.cpp
+===================================================================
+--- qtdeclarative-opensource-src-5.2.1.orig/src/qml/jsruntime/qv4mm.cpp 2014-02-02 00:38:02.000000000 +0400
++++ qtdeclarative-opensource-src-5.2.1/src/qml/jsruntime/qv4mm.cpp 2014-04-27 10:02:29.017973776 +0400
+@@ -67,6 +67,11 @@
+ #include <sys/storage.h> // __tls()
+ #endif
+
++#if OS(SOLARIS)
++#include <thread.h>
++#include <errno.h>
++#endif
++
+ QT_BEGIN_NAMESPACE
+
+ using namespace QV4;
+@@ -231,6 +236,13 @@
+ # if OS(DARWIN)
+ void *st = pthread_get_stackaddr_np(pthread_self());
+ m_d->stackTop = static_cast<quintptr *>(st);
++# elif OS(SOLARIS)
++ stack_t ss;
++ int rc;
++ do {
++ rc = thr_stksegment(&ss);
++ } while ((rc != 0) && (errno == EAGAIN));
++ m_d->stackTop = static_cast<quintptr *>(ss.ss_sp);
+ # else
+ void* stackBottom = 0;
+ pthread_attr_t attr;