#pragma once #include class CCompiledFunc { public: CCompiledFunc(const CCodeBlock & CodeBlock); typedef void (*Func)(); const uint32_t EnterPC () const { return m_EnterPC; } const uint32_t MinPC () const { return m_MinPC; } const uint32_t MaxPC () const { return m_MaxPC; } const Func Function () const { return m_Function; } const uint8_t *FunctionEnd() const { return m_FunctionEnd; } const MD5Digest& Hash () const { return m_Hash; } CCompiledFunc* Next () const { return m_Next; } void SetNext(CCompiledFunc* Next) { m_Next = Next; } uint64_t MemContents(int32_t i) { return m_MemContents[i]; } uint64_t* MemLocation(int32_t i) { return m_MemLocation[i]; } private: CCompiledFunc(void); CCompiledFunc(const CCompiledFunc&); CCompiledFunc& operator=(const CCompiledFunc&); uint32_t m_EnterPC; uint32_t m_MinPC; uint32_t m_MaxPC; uint8_t * m_FunctionEnd; MD5Digest m_Hash; Func m_Function; CCompiledFunc* m_Next; uint64_t m_MemContents[2], * m_MemLocation[2]; }; typedef std::map CCompiledFuncList;