void CLuaMain::InstructionCountHook ( lua_State* luaVM, lua_Debug* pDebug ) { // Grab our lua VM CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM ); if ( pLuaMain ) { // Above max time? if ( timeGetTime () >= pLuaMain->m_ulFunctionEnterTime + HOOK_MAXIMUM_TIME ) { // Print it in the console CLogger::ErrorPrintf ( "Infinite/too long execution (%s)", pLuaMain->GetScriptNamePointer () ); SString strAbortInf = "Aborting; infinite running script in "; strAbortInf += pLuaMain->GetScriptNamePointer (); // Error out lua_pushstring ( luaVM, strAbortInf ); lua_error ( luaVM ); } } }
// Helper function static const char* GetResourceName ( lua_State* luaVM ) { CLuaMain * luaMain = g_pGame->GetLuaManager ()->GetVirtualMachine ( luaVM ); return luaMain ? luaMain->GetScriptNamePointer () : ""; }