diff --git a/libevmjit/ExecutionEngine.cpp b/libevmjit/ExecutionEngine.cpp index fb3b878e2..cb4e16784 100644 --- a/libevmjit/ExecutionEngine.cpp +++ b/libevmjit/ExecutionEngine.cpp @@ -111,6 +111,14 @@ namespace { ReturnCode runEntryFunc(ExecBundle const& _exec, Runtime* _runtime) { + // That function uses long jumps to handle "execeptions". + // Do not create any non-POD objects here + + // TODO: + // Getting pointer to function seems to be cachable, + // but it looks like getPointerToFunction() method does something special + // to allow function to be executed. + // That might be related to memory manager. Can we share one? typedef ReturnCode(*EntryFuncPtr)(Runtime*); auto entryFuncVoidPtr = _exec.engine->getPointerToFunction(_exec.entryFunc); auto entryFuncPtr = static_cast(entryFuncVoidPtr);