summaryrefslogtreecommitdiffstats
path: root/package/webkit/webkit-fix-pool.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/webkit/webkit-fix-pool.patch')
-rw-r--r--package/webkit/webkit-fix-pool.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/package/webkit/webkit-fix-pool.patch b/package/webkit/webkit-fix-pool.patch
new file mode 100644
index 000000000..5a66a8229
--- /dev/null
+++ b/package/webkit/webkit-fix-pool.patch
@@ -0,0 +1,67 @@
+Description: Fixup pool and add sparc support
+Nixed from gentoo
+
+--- webkit-1.2.1.orig/JavaScriptCore/wtf/ListHashSet.h
++++ webkit-1.2.1/JavaScriptCore/wtf/ListHashSet.h
+@@ -127,7 +127,7 @@ namespace WTF {
+ : m_freeList(pool())
+ , m_isDoneWithInitialFreeList(false)
+ {
+- memset(m_pool.pool, 0, sizeof(m_pool.pool));
++ memset(m_pool, 0, sizeof(m_pool));
+ }
+
+ Node* allocate()
+@@ -171,7 +171,7 @@ namespace WTF {
+ }
+
+ private:
+- Node* pool() { return reinterpret_cast<Node*>(m_pool.pool); }
++ Node* pool() { return reinterpret_cast<Node*>(m_pool); }
+ Node* pastPool() { return pool() + m_poolSize; }
+
+ bool inPool(Node* node)
+@@ -182,10 +182,7 @@ namespace WTF {
+ Node* m_freeList;
+ bool m_isDoneWithInitialFreeList;
+ static const size_t m_poolSize = 256;
+- union {
+- char pool[sizeof(Node) * m_poolSize];
+- double forAlignment;
+- } m_pool;
++ uint32_t m_pool[(sizeof(Node) * m_poolSize + sizeof(uint32_t) - 1) / sizeof(uint32_t)];
+ };
+
+ template<typename ValueArg> struct ListHashSetNode {
+--- webkit-1.2.1.orig/WebCore/platform/text/AtomicString.cpp
++++ webkit-1.2.1/WebCore/platform/text/AtomicString.cpp
+@@ -103,9 +103,9 @@ static inline bool equal(StringImpl* str
+ if (string->length() != length)
+ return false;
+
++#if CPU(ARM) || CPU(SPARC) || CPU(SH4)
+ // FIXME: perhaps we should have a more abstract macro that indicates when
+ // going 4 bytes at a time is unsafe
+-#if CPU(ARM) || CPU(SH4)
+ const UChar* stringCharacters = string->characters();
+ for (unsigned i = 0; i != length; ++i) {
+ if (*stringCharacters++ != *characters++)
+--- webkit-1.2.1.orig/WebCore/platform/text/StringHash.h
++++ webkit-1.2.1/WebCore/platform/text/StringHash.h
+@@ -54,13 +54,13 @@ namespace WebCore {
+
+ // FIXME: perhaps we should have a more abstract macro that indicates when
+ // going 4 bytes at a time is unsafe
+-#if CPU(ARM) || CPU(SH4)
++#if CPU(ARM) || CPU(SPARC) || CPU(SH4)
+ const UChar* aChars = a->characters();
+ const UChar* bChars = b->characters();
+- for (unsigned i = 0; i != aLength; ++i) {
++ for (unsigned i = 0; i != aLength; ++i)
+ if (*aChars++ != *bChars++)
+ return false;
+- }
++
+ return true;
+ #else
+ /* Do it 4-bytes-at-a-time on architectures where it's safe */