示例#1
0
        internal void ThrowExceptionFromError(ScriptState luaState, int oldTop)
        {
            object err = DataHelper.GetObject(luaState, -1);

            LuaCore.SetTop(luaState, oldTop);
            var luaEx = err as LuaSourcetException;

            if (luaEx != null)
            {
                throw luaEx;
            }
            if (err == null)
            {
                err = "Unknown Lua Error";
            }
            throw new LuaSourcetException(err.ToString(), string.Empty);
        }
示例#2
0
        public IList <object> PopResults(ScriptState luaState, int oldTopIndex)
        {
            int newTopIndex = LuaCore.GetTop(luaState);

            if (oldTopIndex == newTopIndex)
            {
                return(null);
            }

            var returnValues = new List <object>();

            for (int i = oldTopIndex + 1; i <= newTopIndex; i++)
            {
                returnValues.Add(DataHelper.GetObject(luaState, i));
            }

            LuaCore.SetTop(luaState, oldTopIndex);
            return(returnValues);
        }