Changeset 64790 in webkit for trunk/JavaScriptCore/bytecode/CodeBlock.h
- Timestamp:
- Aug 5, 2010, 3:22:49 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/bytecode/CodeBlock.h
r62677 r64790 276 276 friend class JIT; 277 277 protected: 278 CodeBlock(ScriptExecutable* ownerExecutable, CodeType, PassRefPtr<SourceProvider>, unsigned sourceOffset, SymbolTable* symbolTable, bool isConstructor); 278 CodeBlock(ScriptExecutable* ownerExecutable, CodeType, JSGlobalObject*, PassRefPtr<SourceProvider>, unsigned sourceOffset, SymbolTable* symbolTable, bool isConstructor); 279 280 JSGlobalObject* m_globalObject; 281 279 282 public: 280 283 virtual ~CodeBlock(); … … 484 487 RegExp* regexp(int index) const { ASSERT(m_rareData); return m_rareData->m_regexps[index].get(); } 485 488 489 JSGlobalObject* globalObject() { return m_globalObject; } 486 490 487 491 // Jump Tables … … 603 607 class GlobalCodeBlock : public CodeBlock { 604 608 public: 605 GlobalCodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, JSGlobalObject* globalObject) 606 : CodeBlock(ownerExecutable, codeType, sourceProvider, sourceOffset, &m_unsharedSymbolTable, false) 607 , m_globalObject(globalObject) 609 GlobalCodeBlock(ScriptExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset) 610 : CodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, sourceOffset, &m_unsharedSymbolTable, false) 608 611 { 609 612 m_globalObject->codeBlocks().add(this); … … 619 622 620 623 private: 621 JSGlobalObject* m_globalObject; // For program and eval nodes, the global object that marks the constant pool.622 624 SymbolTable m_unsharedSymbolTable; 623 625 }; … … 626 628 public: 627 629 ProgramCodeBlock(ProgramExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider) 628 : GlobalCodeBlock(ownerExecutable, codeType, sourceProvider, 0, globalObject)630 : GlobalCodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, 0) 629 631 { 630 632 } … … 634 636 public: 635 637 EvalCodeBlock(EvalExecutable* ownerExecutable, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, int baseScopeDepth) 636 : GlobalCodeBlock(ownerExecutable, EvalCode, sourceProvider, 0, globalObject)638 : GlobalCodeBlock(ownerExecutable, EvalCode, globalObject, sourceProvider, 0) 637 639 , m_baseScopeDepth(baseScopeDepth) 638 640 { … … 660 662 // symbol table, so we just pass as a raw pointer with a ref count of 1. We then manually deref 661 663 // in the destructor. 662 FunctionCodeBlock(FunctionExecutable* ownerExecutable, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, bool isConstructor)663 : CodeBlock(ownerExecutable, codeType, sourceProvider, sourceOffset, SharedSymbolTable::create().releaseRef(), isConstructor)664 FunctionCodeBlock(FunctionExecutable* ownerExecutable, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, bool isConstructor) 665 : CodeBlock(ownerExecutable, codeType, globalObject, sourceProvider, sourceOffset, SharedSymbolTable::create().releaseRef(), isConstructor) 664 666 { 665 667 }
Note:
See TracChangeset
for help on using the changeset viewer.