فهرست منبع

Missed an uncaught exception in newRandomGenerator

--HG--
branch : RandomGenerator-2
Alex Szpakowski 12 سال پیش
والد
کامیت
50504d83a5
1فایلهای تغییر یافته به همراه15 افزوده شده و 1 حذف شده
  1. 15 1
      src/modules/math/wrap_Math.cpp

+ 15 - 1
src/modules/math/wrap_Math.cpp

@@ -71,10 +71,24 @@ int w_randomNormal(lua_State *L)
 
 int w_newRandomGenerator(lua_State *L)
 {
+	RandomGenerator::State s;
+	if (lua_gettop(L) > 0)
+		s = luax_checkrandomstate(L, 1);
+
 	RandomGenerator *t = Math::instance.newRandomGenerator();
 
 	if (lua_gettop(L) > 0)
-		t->setState(luax_checkrandomstate(L, 1));
+	{
+		try
+		{
+			t->setState(s);
+		}
+		catch (love::Exception &e)
+		{
+			t->release();
+			return luaL_error(L, "%s", e.what());
+		}
+	}
 
 	luax_newtype(L, "RandomGenerator", MATH_RANDOM_GENERATOR_T, (void *) t);
 	return 1;