Changeset 44443 in webkit for trunk/JavaScriptCore/assembler/AbstractMacroAssembler.h
- Timestamp:
- Jun 4, 2009, 5:36:56 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/assembler/AbstractMacroAssembler.h
r44346 r44443 720 720 class PatchBuffer : public Noncopyable { 721 721 public: 722 // Note: Initialization sequence is significant, since executablePool is a PassRefPtr. 723 // First, executablePool is copied into m_executablePool, then the initialization of 724 // m_code uses m_executablePool, *not* executablePool, since this is no longer valid. 722 725 PatchBuffer(AbstractMacroAssembler<AssemblerType>* masm, PassRefPtr<ExecutablePool> executablePool) 723 : m_ref(0, executablePool, masm->m_assembler.size()) 726 : m_executablePool(executablePool) 727 , m_code(masm->m_assembler.executableCopy(m_executablePool.get())) 724 728 , m_size(masm->m_assembler.size()) 725 729 #ifndef NDEBUG … … 727 731 #endif 728 732 { 729 m_ref.m_code = masm->m_assembler.executableCopy(m_ref.m_executablePool.get());730 733 } 731 734 … … 830 833 performFinalization(); 831 834 832 return m_ref;835 return CodeRef(m_code, m_executablePool, m_size); 833 836 } 834 837 CodeLocationLabel finalizeCodeAddendum() … … 844 847 void* code() 845 848 { 846 return m_ ref.m_code;849 return m_code; 847 850 } 848 851 … … 854 857 #endif 855 858 856 ExecutableAllocator::makeExecutable(m_ref.m_code, m_size); 857 } 858 859 CodeRef m_ref; 859 ExecutableAllocator::makeExecutable(m_code, m_size); 860 } 861 862 RefPtr<ExecutablePool> m_executablePool; 863 void* m_code; 860 864 size_t m_size; 861 865 #ifndef NDEBUG
Note:
See TracChangeset
for help on using the changeset viewer.