#include "Runtime.h" #include namespace dev { namespace eth { namespace jit { void Runtime::init(RuntimeData* _data, Env* _env) { m_data = _data; m_env = _env; } extern "C" void ext_free(void* _data) noexcept; Runtime::~Runtime() { if (m_memData) ext_free(m_memData); // Use helper free to check memory leaks } bytes_ref Runtime::getReturnData() const { auto data = m_data->callData; auto size = static_cast(m_data->callDataSize); if (data < m_memData || data >= m_memData + m_memSize || size == 0) { assert(size == 0); // data can be an invalid pointer only if size is 0 m_data->callData = nullptr; return {}; } return bytes_ref{data, size}; } } } }