Very minor channel / variant performance improvements and cleanup.

This commit is contained in:
Alex Szpakowski
2016-03-12 19:11:03 -04:00
parent a0bbcce8ee
commit d0c0240e09
6 changed files with 48 additions and 57 deletions
+3 -3
View File
@@ -63,14 +63,14 @@ Message *Message::fromLua(lua_State *L, int n)
if (lua_isnoneornil(L, n+i))
break;
if (!Variant::fromLua(L, n+i, &varg))
vargs.push_back(Variant::fromLua(L, n+i));
if (vargs.back().getType() == Variant::UNKNOWN)
{
vargs.clear();
luaL_error(L, "Argument %d can't be stored safely\nExpected boolean, number, string or userdata.", n+i);
return nullptr;
}
vargs.push_back(varg);
}
return new Message(name, vargs);
+1 -5
View File
@@ -93,11 +93,7 @@ int w_clear(lua_State *)
int w_quit(lua_State *L)
{
std::vector<Variant> args;
Variant v;
if (Variant::fromLua(L, 1, &v))
args.push_back(v);
std::vector<Variant> args = {Variant::fromLua(L, 1)};
StrongRef<Message> m(new Message("quit", args), Acquire::NORETAIN);
instance()->push(m);
+4 -4
View File
@@ -33,8 +33,8 @@ Channel *luax_checkchannel(lua_State *L, int idx)
int w_Channel_push(lua_State *L)
{
Channel *c = luax_checkchannel(L, 1);
Variant var;
if (!Variant::fromLua(L, 2, &var))
Variant var = Variant::fromLua(L, 2);
if (var.getType() == Variant::UNKNOWN)
return luaL_argerror(L, 2, "boolean, number, string, love type, or flat table expected");
c->push(var);
return 0;
@@ -43,8 +43,8 @@ int w_Channel_push(lua_State *L)
int w_Channel_supply(lua_State *L)
{
Channel *c = luax_checkchannel(L, 1);
Variant var;
if (!Variant::fromLua(L, 2, &var))
Variant var = Variant::fromLua(L, 2);
if (var.getType() == Variant::UNKNOWN)
return luaL_argerror(L, 2, "boolean, number, string, love type, or flat table expected");
c->supply(var);
return 0;
+3 -4
View File
@@ -36,16 +36,15 @@ int w_Thread_start(lua_State *L)
std::vector<Variant> args;
int nargs = lua_gettop(L) - 1;
Variant v;
for (int i = 0; i < nargs; ++i)
{
if (!Variant::fromLua(L, i+2, &v))
args.push_back(Variant::fromLua(L, i+2));
if (args.back().getType() == Variant::UNKNOWN)
{
args.clear();
return luaL_argerror(L, i+2, "boolean, number, string, love type, or flat table expected");
}
args.push_back(v);
}
luax_pushboolean(L, t->start(args));