Reject NaN and Inf in check_v3d() too
check_v2f() was already doing this
This commit is contained in:
parent
ec16fb33d0
commit
6ca9d75f0b
@ -199,6 +199,9 @@ v3d check_v3d(lua_State *L, int index)
|
||||
double y = lua_tonumber(L, -2);
|
||||
double z = lua_tonumber(L, -1);
|
||||
lua_pop(L, 3);
|
||||
CHECK_FLOAT(x, "x");
|
||||
CHECK_FLOAT(y, "y");
|
||||
CHECK_FLOAT(z, "z");
|
||||
return v3d(x, y, z);
|
||||
}
|
||||
|
||||
|
@ -180,4 +180,17 @@ void TestScriptApi::testVectorReadMix(MyScriptApi *script)
|
||||
EXCEPTION_CHECK(LuaError, check_v3s16(L, -1));
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
|
||||
// same but even the result is undefined
|
||||
const char *errs2[] = {
|
||||
"return {x=0, y=0, z=0/0}", // nan
|
||||
"return {x=0, y=0, z=math.huge}", // inf
|
||||
};
|
||||
for (auto &it : errs2) {
|
||||
infostream << it << std::endl;
|
||||
run(L, it, 1);
|
||||
(void)read_v3s16(L, -1);
|
||||
EXCEPTION_CHECK(LuaError, check_v3s16(L, -1));
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user