diff options
author | Steve Block <steveblock@google.com> | 2011-05-18 13:36:51 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-05-24 15:38:28 +0100 |
commit | 2fc2651226baac27029e38c9d6ef883fa32084db (patch) | |
tree | e396d4bf89dcce6ed02071be66212495b1df1dec /Source/JavaScriptCore/bytecode | |
parent | b3725cedeb43722b3b175aaeff70552e562d2c94 (diff) | |
download | external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.zip external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.gz external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.bz2 |
Merge WebKit at r78450: Initial merge by git.
Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1
Diffstat (limited to 'Source/JavaScriptCore/bytecode')
-rw-r--r-- | Source/JavaScriptCore/bytecode/CodeBlock.cpp | 4 | ||||
-rw-r--r-- | Source/JavaScriptCore/bytecode/CodeBlock.h | 12 |
2 files changed, 7 insertions, 9 deletions
diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.cpp b/Source/JavaScriptCore/bytecode/CodeBlock.cpp index f3f5f27..5fba8bb 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.cpp +++ b/Source/JavaScriptCore/bytecode/CodeBlock.cpp @@ -1361,6 +1361,7 @@ void CodeBlock::dumpStatistics() CodeBlock::CodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, JSGlobalObject *globalObject, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, SymbolTable* symTab, bool isConstructor) : m_globalObject(globalObject) + , m_heap(&m_globalObject->globalData().heap) , m_numCalleeRegisters(0) , m_numVars(0) , m_numParameters(0) @@ -1529,12 +1530,11 @@ void CodeBlock::refStructures(Instruction* vPC) const void CodeBlock::markAggregate(MarkStack& markStack) { for (size_t i = 0; i < m_constantRegisters.size(); ++i) - markStack.append(m_constantRegisters[i].jsValue()); + markStack.deprecatedAppend(&m_constantRegisters[i]); for (size_t i = 0; i < m_functionExprs.size(); ++i) m_functionExprs[i]->markAggregate(markStack); for (size_t i = 0; i < m_functionDecls.size(); ++i) m_functionDecls[i]->markAggregate(markStack); - markStack.append(m_globalObject); } HandlerInfo* CodeBlock::handlerForBytecodeOffset(unsigned bytecodeOffset) diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.h b/Source/JavaScriptCore/bytecode/CodeBlock.h index 1cd0863..f8498b4 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.h +++ b/Source/JavaScriptCore/bytecode/CodeBlock.h @@ -248,7 +248,8 @@ namespace JSC { protected: CodeBlock(ScriptExecutable* ownerExecutable, CodeType, JSGlobalObject*, PassRefPtr<SourceProvider>, unsigned sourceOffset, SymbolTable* symbolTable, bool isConstructor); - JSGlobalObject* m_globalObject; + DeprecatedPtr<JSGlobalObject> m_globalObject; + Heap* m_heap; public: virtual ~CodeBlock(); @@ -485,7 +486,7 @@ namespace JSC { unsigned addRegExp(RegExp* r) { createRareDataIfNecessary(); unsigned size = m_rareData->m_regexps.size(); m_rareData->m_regexps.append(r); return size; } RegExp* regexp(int index) const { ASSERT(m_rareData); return m_rareData->m_regexps[index].get(); } - JSGlobalObject* globalObject() { return m_globalObject; } + JSGlobalObject* globalObject() { return m_globalObject.get(); } // Jump Tables @@ -616,17 +617,14 @@ namespace JSC { GlobalCodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset) : CodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, sourceOffset, &m_unsharedSymbolTable, false) { - m_globalObject->codeBlocks().add(this); + m_heap->codeBlocks().add(this); } ~GlobalCodeBlock() { - if (m_globalObject) - m_globalObject->codeBlocks().remove(this); + m_heap->codeBlocks().remove(this); } - void clearGlobalObject() { m_globalObject = 0; } - private: SymbolTable m_unsharedSymbolTable; }; |