public virtual void Dispose(bool disposeManagedResources) { if (!disposed) { if (disposeManagedResources) { luaState.CollectByMain(reference, name, type == LuaTypes.LUA_TFUNCTION); } else { luaState.AddToGCList(reference, name, type == LuaTypes.LUA_TFUNCTION); } luaState = null; count = 0; disposed = true; } }