protected internal virtual void DoResume() { #if ENABLE_PROFILER && ENABLE_PROFILER_LUA_DEEP && !DISABLE_PROFILER_LUA_COROUTINE string simpleStack = L.GetSimpleStackInfo(8); using (var pcon = new Capstones.UnityFramework.ProfilerContext("LuaCoroutine: " + simpleStack)) #endif ResumeRaw(0); }
protected internal override void DoResume() { if (!ReferenceEquals(_Func, null) && L != IntPtr.Zero) { if (_NeedRestart) { _NeedRestart = false; _IsDone = false; if (ReferenceEquals(_Func, null)) { L.settop(0); return; } L.PushLua(_Func); L.insert(1); #if ENABLE_PROFILER && ENABLE_PROFILER_LUA_DEEP && !DISABLE_PROFILER_LUA_COROUTINE if (_ProfilerShownName == null) { System.Text.StringBuilder sbName = new System.Text.StringBuilder(); sbName.Append("LuaCoroutine in "); string funcName, fileName; int lineStart, lineCur; L.GetFuncInfo(1, out funcName, out fileName, out lineStart, out lineCur); sbName.Append(fileName); sbName.Append(" at "); sbName.Append(lineStart); _ProfilerShownName = sbName.ToString(); } using (var pcon = new Capstones.UnityFramework.ProfilerContext(_ProfilerShownName)) using (var pconi = new Capstones.UnityFramework.ProfilerContext("at start")) #endif ResumeRaw(1); } else if (IsRunning) { #if ENABLE_PROFILER && ENABLE_PROFILER_LUA_DEEP && !DISABLE_PROFILER_LUA_COROUTINE string simpleStack = L.GetSimpleStackInfo(8); using (var pcon = new Capstones.UnityFramework.ProfilerContext(_ProfilerShownName)) using (var pconi = new Capstones.UnityFramework.ProfilerContext(simpleStack)) #endif ResumeRaw(0); } } }
public static void PushLuaExplicit <T>(this IntPtr l, T val) { var type = typeof(T); ILuaTypeHub sub = LuaTypeHub.GetTypeHub(type); if (sub != null) { if (sub.ShouldCache) { if (sub.PushFromCache(l, val)) { return; } } var sub2 = sub as ILuaPush <T>; IntPtr h; if (sub2 != null) { h = sub2.PushLua(l, val); } else { #if ENABLE_PROFILER && ENABLE_PROFILER_LUA_DEEP && !DISABLE_PROFILER_LUA_GC_ALLOC using (var pcon = new Capstones.UnityFramework.ProfilerContext("box val of " + typeof(T).ToString())) #endif h = sub.PushLua(l, val); } if (sub.ShouldCache && h != IntPtr.Zero) { LuaObjCache.RegObj(l, val, -1, h); } } else { PushLuaRawObject(l, val); l.PushCommonMetaTable(); l.setmetatable(-2); } }