Changeset 43479 in webkit for trunk/JavaScriptCore/parser/Nodes.cpp
- Timestamp:
- May 10, 2009, 9:30:14 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/parser/Nodes.cpp
r43475 r43479 51 51 52 52 static void substitute(UString& string, const UString& substring) JSC_FAST_CALL; 53 54 // ------------------------------ ParserRefCounted -----------------------------------------55 56 #ifndef NDEBUG57 58 static RefCountedLeakCounter parserRefCountedCounter("JSC::Node");59 60 ALWAYS_INLINE ParserRefCounted::ParserRefCounted(JSGlobalData* globalData)61 {62 globalData->parserArena.append(adoptRef(this));63 parserRefCountedCounter.increment();64 }65 66 ALWAYS_INLINE ParserRefCounted::~ParserRefCounted()67 {68 parserRefCountedCounter.decrement();69 }70 71 #endif72 53 73 54 // ------------------------------ ThrowableExpressionData -------------------------------- … … 1840 1821 ScopeNode::ScopeNode(JSGlobalData* globalData) 1841 1822 : StatementNode(globalData) 1823 , ParserArenaRefCounted(globalData) 1842 1824 , m_features(NoFeatures) 1843 1825 { … … 1849 1831 ScopeNode::ScopeNode(JSGlobalData* globalData, const SourceCode& source, SourceElements* children, VarStack* varStack, FunctionStack* funcStack, CodeFeatures features, int numConstants) 1850 1832 : StatementNode(globalData) 1851 , m_data(new ScopeNodeData(globalData->parserArena, children, varStack, funcStack, numConstants)) 1833 , ParserArenaRefCounted(globalData) 1834 , m_data(new ScopeNodeData(globalData->parser->arena(), children, varStack, funcStack, numConstants)) 1852 1835 , m_features(features) 1853 1836 , m_source(source) … … 1867 1850 PassRefPtr<ProgramNode> ProgramNode::create(JSGlobalData* globalData, SourceElements* children, VarStack* varStack, FunctionStack* funcStack, const SourceCode& source, CodeFeatures features, int numConstants) 1868 1851 { 1869 RefPtr<ProgramNode> node = new (globalData)ProgramNode(globalData, children, varStack, funcStack, source, features, numConstants);1852 RefPtr<ProgramNode> node = new ProgramNode(globalData, children, varStack, funcStack, source, features, numConstants); 1870 1853 1871 1854 ASSERT(node->data()->m_arena.last() == node); 1872 1855 node->data()->m_arena.removeLast(); 1873 ASSERT( node->data()->m_arena.find(node.get()) == notFound);1856 ASSERT(!node->data()->m_arena.contains(node.get())); 1874 1857 1875 1858 return node.release(); … … 1911 1894 PassRefPtr<EvalNode> EvalNode::create(JSGlobalData* globalData, SourceElements* children, VarStack* varStack, FunctionStack* funcStack, const SourceCode& source, CodeFeatures features, int numConstants) 1912 1895 { 1913 RefPtr<EvalNode> node = new (globalData)EvalNode(globalData, children, varStack, funcStack, source, features, numConstants);1896 RefPtr<EvalNode> node = new EvalNode(globalData, children, varStack, funcStack, source, features, numConstants); 1914 1897 1915 1898 ASSERT(node->data()->m_arena.last() == node); 1916 1899 node->data()->m_arena.removeLast(); 1917 ASSERT( node->data()->m_arena.find(node.get()) == notFound);1900 ASSERT(!node->data()->m_arena.contains(node.get())); 1918 1901 1919 1902 return node.release(); … … 2026 2009 PassRefPtr<FunctionBodyNode> FunctionBodyNode::createNativeThunk(JSGlobalData* globalData) 2027 2010 { 2028 RefPtr<FunctionBodyNode> body = new (globalData)FunctionBodyNode(globalData);2029 globalData->parser Arena.shrink(0);2011 RefPtr<FunctionBodyNode> body = new FunctionBodyNode(globalData); 2012 globalData->parser->arena().reset(); 2030 2013 body->m_jitCode = globalData->jitStubs.ctiNativeCallThunk(); 2031 2014 return body.release(); … … 2035 2018 FunctionBodyNode* FunctionBodyNode::create(JSGlobalData* globalData) 2036 2019 { 2037 return new (globalData)FunctionBodyNode(globalData);2020 return new FunctionBodyNode(globalData); 2038 2021 } 2039 2022 2040 2023 PassRefPtr<FunctionBodyNode> FunctionBodyNode::create(JSGlobalData* globalData, SourceElements* children, VarStack* varStack, FunctionStack* funcStack, const SourceCode& sourceCode, CodeFeatures features, int numConstants) 2041 2024 { 2042 RefPtr<FunctionBodyNode> node = new (globalData)FunctionBodyNode(globalData, children, varStack, funcStack, sourceCode, features, numConstants);2025 RefPtr<FunctionBodyNode> node = new FunctionBodyNode(globalData, children, varStack, funcStack, sourceCode, features, numConstants); 2043 2026 2044 2027 ASSERT(node->data()->m_arena.last() == node); 2045 2028 node->data()->m_arena.removeLast(); 2046 ASSERT( node->data()->m_arena.find(node.get()) == notFound);2029 ASSERT(!node->data()->m_arena.contains(node.get())); 2047 2030 2048 2031 return node.release();
Note:
See TracChangeset
for help on using the changeset viewer.