68 lines
2.5 KiB
Diff
68 lines
2.5 KiB
Diff
|
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 */
|