18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2008, 2010 Apple Inc. All Rights Reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h"
28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "WTFThreadData.h"
29dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocknamespace WTF {
31dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if WTFTHREADDATA_MULTITHREADED
33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockThreadSpecific<WTFThreadData>* WTFThreadData::staticData;
34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#else
35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockWTFThreadData* WTFThreadData::staticData;
36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockWTFThreadData::WTFThreadData()
39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    : m_atomicStringTable(0)
40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    , m_atomicStringTableDestructor(0)
41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if USE(JSC)
4221939df44de1705786c545cd1bf519d47250322dBen Murdoch    , m_defaultIdentifierTable(new JSC::IdentifierTable())
4321939df44de1705786c545cd1bf519d47250322dBen Murdoch    , m_currentIdentifierTable(m_defaultIdentifierTable)
44f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch    , m_stackBounds(StackBounds::currentThreadStackBounds())
45cad810f21b803229eb11403f9209855525a25d57Steve Block#endif
46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockWTFThreadData::~WTFThreadData()
50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    if (m_atomicStringTableDestructor)
52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        m_atomicStringTableDestructor(m_atomicStringTable);
5321939df44de1705786c545cd1bf519d47250322dBen Murdoch#if USE(JSC)
5421939df44de1705786c545cd1bf519d47250322dBen Murdoch    delete m_defaultIdentifierTable;
5521939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif
56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
58dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch}
59