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); }
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); }