Description: Fixup pool and add sparc support --- 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(m_pool.pool); } + Node* pool() { return reinterpret_cast(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 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 */