diff options
Diffstat (limited to 'package/webkit/webkit-fix-pool.patch')
-rw-r--r-- | package/webkit/webkit-fix-pool.patch | 67 |
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 */ |