Changeset 163151 in webkit
- Timestamp:
- Jan 30, 2014 7:38:06 PM (10 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r163140 r163151 1 2014-01-30 Andreas Kling <akling@apple.com> 2 3 CodeBlock's cloned SymbolTables only need the captured names. 4 <https://webkit.org/b/127978> 5 6 Renamed SymbolTable::clone() to SymbolTable::cloneCapturedNames() 7 and make it skip over any symbols that aren't captured, since those 8 won't be needed after codegen. 9 10 This is a first step towards getting rid of redundant symbol tables. 11 12 Reviewed by Geoffrey Garen. 13 14 * bytecode/CodeBlock.cpp: 15 (JSC::CodeBlock::CodeBlock): 16 * runtime/SymbolTable.cpp: 17 (JSC::SymbolTable::cloneCapturedNames): 18 * runtime/SymbolTable.h: 19 1 20 2014-01-28 Timothy Hatcher <timothy@apple.com> 2 21 -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r163027 r163151 1559 1559 if (SymbolTable* symbolTable = unlinkedCodeBlock->symbolTable()) { 1560 1560 if (codeType() == FunctionCode && symbolTable->captureCount()) { 1561 m_symbolTable.set(*m_vm, m_ownerExecutable.get(), symbolTable->clone (*m_vm));1561 m_symbolTable.set(*m_vm, m_ownerExecutable.get(), symbolTable->cloneCapturedNames(*m_vm)); 1562 1562 didCloneSymbolTable = true; 1563 1563 } else -
trunk/Source/JavaScriptCore/runtime/SymbolTable.cpp
r160109 r163151 135 135 } 136 136 137 SymbolTable* SymbolTable::clone (VM& vm)137 SymbolTable* SymbolTable::cloneCapturedNames(VM& vm) 138 138 { 139 139 SymbolTable* result = SymbolTable::create(vm); … … 143 143 result->m_captureStart = m_captureStart; 144 144 result->m_captureEnd = m_captureEnd; 145 146 Map::iterator iter = m_map.begin();147 Map::iterator end = m_map.end();148 for (; iter != end; ++iter) {145 146 for (auto iter = m_map.begin(), end = m_map.end(); iter != end; ++iter) { 147 if (!isCaptured(iter->value.getIndex())) 148 continue; 149 149 result->m_map.add( 150 150 iter->key, -
trunk/Source/JavaScriptCore/runtime/SymbolTable.h
r162139 r163151 468 468 void setSlowArguments(std::unique_ptr<SlowArgument[]> slowArguments) { m_slowArguments = std::move(slowArguments); } 469 469 470 SymbolTable* clone (VM&);470 SymbolTable* cloneCapturedNames(VM&); 471 471 472 472 static void visitChildren(JSCell*, SlotVisitor&);
Note: See TracChangeset
for help on using the changeset viewer.