Changeset 47304 in webkit for trunk/JavaScriptCore/bytecode/CodeBlock.h
- Timestamp:
- Aug 14, 2009, 6:14:00 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/bytecode/CodeBlock.h
r47089 r47304 251 251 class CodeBlock : public FastAllocBase { 252 252 friend class JIT; 253 p ublic:253 protected: 254 254 CodeBlock(ScopeNode* ownerNode); 255 255 CodeBlock(ScopeNode* ownerNode, CodeType, PassRefPtr<SourceProvider>, unsigned sourceOffset); 256 public: 256 257 ~CodeBlock(); 257 258 … … 551 552 // responsible for marking it. 552 553 553 class ProgramCodeBlock : public CodeBlock { 554 class GlobalCodeBlock : public CodeBlock { 555 public: 556 GlobalCodeBlock(ScopeNode* ownerNode, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset, JSGlobalObject* globalObject) 557 : CodeBlock(ownerNode, codeType, sourceProvider, sourceOffset) 558 , m_globalObject(globalObject) 559 { 560 m_globalObject->codeBlocks().add(this); 561 } 562 563 ~GlobalCodeBlock() 564 { 565 if (m_globalObject) 566 m_globalObject->codeBlocks().remove(this); 567 } 568 569 void clearGlobalObject() { m_globalObject = 0; } 570 571 private: 572 JSGlobalObject* m_globalObject; // For program and eval nodes, the global object that marks the constant pool. 573 }; 574 575 class ProgramCodeBlock : public GlobalCodeBlock { 554 576 public: 555 577 ProgramCodeBlock(ScopeNode* ownerNode, CodeType codeType, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider) 556 : CodeBlock(ownerNode, codeType, sourceProvider, 0) 557 , m_globalObject(globalObject) 558 { 559 m_globalObject->codeBlocks().add(this); 560 } 561 562 ~ProgramCodeBlock() 563 { 564 if (m_globalObject) 565 m_globalObject->codeBlocks().remove(this); 566 } 567 568 void clearGlobalObject() { m_globalObject = 0; } 569 570 private: 571 JSGlobalObject* m_globalObject; // For program and eval nodes, the global object that marks the constant pool. 572 }; 573 574 class EvalCodeBlock : public ProgramCodeBlock { 578 : GlobalCodeBlock(ownerNode, codeType, sourceProvider, 0, globalObject) 579 { 580 } 581 }; 582 583 class EvalCodeBlock : public GlobalCodeBlock { 575 584 public: 576 585 EvalCodeBlock(ScopeNode* ownerNode, JSGlobalObject* globalObject, PassRefPtr<SourceProvider> sourceProvider, int baseScopeDepth) 577 : ProgramCodeBlock(ownerNode, EvalCode, globalObject, sourceProvider)586 : GlobalCodeBlock(ownerNode, EvalCode, sourceProvider, 0, globalObject) 578 587 , m_baseScopeDepth(baseScopeDepth) 579 588 { … … 584 593 private: 585 594 int m_baseScopeDepth; 595 }; 596 597 class FunctionCodeBlock : public CodeBlock { 598 public: 599 FunctionCodeBlock(ScopeNode* ownerNode, CodeType codeType, PassRefPtr<SourceProvider> sourceProvider, unsigned sourceOffset) 600 : CodeBlock(ownerNode, codeType, sourceProvider, sourceOffset) 601 { 602 } 603 }; 604 605 class NativeCodeBlock : public CodeBlock { 606 public: 607 NativeCodeBlock(ScopeNode* ownerNode) 608 : CodeBlock(ownerNode) 609 { 610 } 586 611 }; 587 612
Note:
See TracChangeset
for help on using the changeset viewer.