Browse Source

Added argument type checking to Channel:push (nil now errors instead of crashing)

Alex Szpakowski 12 years ago
parent
commit
f0860a488d
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/modules/thread/wrap_Channel.cpp

+ 4 - 0
src/modules/thread/wrap_Channel.cpp

@@ -47,6 +47,8 @@ int w_Channel_push(lua_State *L)
 {
 	Channel *c = luax_checkchannel(L, 1);
 	Variant *var = Variant::fromLua(L, 2);
+	if (!var)
+		return luaL_argerror(L, 2, "boolean, number, string, or love userdata expected");
 	c->push(var);
 	releaseVariant(c, var);
 	return 0;
@@ -56,6 +58,8 @@ int w_Channel_supply(lua_State *L)
 {
 	Channel *c = luax_checkchannel(L, 1);
 	Variant *var = Variant::fromLua(L, 2);
+	if (!var)
+		return luaL_argerror(L, 2, "boolean, number, string, or love userdata expected");
 	c->supply(var);
 	releaseVariant(c, var);
 	return 0;