1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
Description: fix some alignment problems on sparc.
Author: Mike Hommey <glandium@debian.org>
Author: Timo Jyrinki <timo@debian.org>
Last-Update: 2013-12-17
---
Source/JavaScriptCore/wtf/ListHashSet.h | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
--- a/Source/WTF/wtf/ListHashSet.h
+++ b/Source/WTF/wtf/ListHashSet.h
@@ -173,7 +173,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()
@@ -217,7 +217,7 @@ namespace WTF {
}
private:
- Node* pool() { return reinterpret_cast_ptr<Node*>(m_pool.pool); }
+ Node* pool() { return reinterpret_cast_ptr<Node*>(m_pool); }
Node* pastPool() { return pool() + m_poolSize; }
bool inPool(Node* node)
{
@@ -227,10 +227,7 @@ namespace WTF {
Node* m_freeList;
bool m_isDoneWithInitialFreeList;
static const size_t m_poolSize = inlineCapacity;
- 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, size_t inlineCapacity> struct ListHashSetNode {
|