public LuaThread(LuaFunc func) : base(IntPtr.Zero)
 {
     if (func != null && func.L != IntPtr.Zero)
     {
         L     = func.L.newthread();
         Refid = func.L.refer();
         if (func.Refid != 0)
         {
             L.getref(func.Refid);
             _Func = new LuaFunc(L, -1);
             L.pop(1);
         }
     }
 }
示例#2
0
 public LuaThread(LuaOnStackFunc func) : base(IntPtr.Zero)
 {
     if (!ReferenceEquals(func, null) && func.L != IntPtr.Zero)
     {
         L     = func.L.newthread();
         Refid = func.L.refer();
         func.L.pushvalue(func.StackPos);
         var reffunc = func.L.refer();
         _Func       = new LuaFunc();
         _Func.L     = L;
         _Func.Refid = reffunc;
     }
     if (L != IntPtr.Zero)
     {
         _ObjCache = LuaObjCache.GetOrCreateObjCache(L);
     }
 }
示例#3
0
 public LuaThread(LuaFunc func) : base(IntPtr.Zero)
 {
     if (!ReferenceEquals(func, null) && func.L != IntPtr.Zero)
     {
         L     = func.L.newthread();
         Refid = func.L.refer();
         if (func.Refid != 0)
         {
             L.getref(func.Refid);
             _Func = new LuaFunc(L, -1);
             L.pop(1);
         }
     }
     if (L != IntPtr.Zero)
     {
         _ObjCache = LuaObjCache.GetOrCreateObjCache(L);
     }
 }