aboutsummaryrefslogtreecommitdiff
path: root/src/tools.c
diff options
context:
space:
mode:
authorBenoit Germain <bnt period germain arrobase gmail period com>2014-02-18 10:21:12 +0100
committerBenoit Germain <bnt period germain arrobase gmail period com>2014-02-18 10:21:12 +0100
commitc662c34aaf279c9fedd5bee499c57d9986801538 (patch)
tree931ddb29c1a5a1ebd6d58e221cf663248caf34c7 /src/tools.c
parent48517ca661895a0c70093e78f165866cb9363206 (diff)
downloadlanes-c662c34aaf279c9fedd5bee499c57d9986801538.tar.gz
lanes-c662c34aaf279c9fedd5bee499c57d9986801538.tar.bz2
lanes-c662c34aaf279c9fedd5bee499c57d9986801538.zip
more graceful handling of out-of-memory errors
* raise an error instead of dereferencing a NULL pointer on deep userdata creation and lane struct creation
Diffstat (limited to 'src/tools.c')
-rw-r--r--src/tools.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/tools.c b/src/tools.c
index d149f9b..81ddf5c 100644
--- a/src/tools.c
+++ b/src/tools.c
@@ -1074,7 +1074,10 @@ int luaG_newdeepuserdata( lua_State* L, luaG_IdFunction idfunc)
1074 { 1074 {
1075 int oldtop = lua_gettop( L); 1075 int oldtop = lua_gettop( L);
1076 prelude->deep = idfunc( L, eDO_new); 1076 prelude->deep = idfunc( L, eDO_new);
1077 ASSERT_L( prelude->deep); 1077 if( prelude->deep == NULL)
1078 {
1079 luaL_error( L, "idfunc(eDO_new) failed to create deep userdata (out of memory)");
1080 }
1078 1081
1079 if( lua_gettop( L) - oldtop != 0) 1082 if( lua_gettop( L) - oldtop != 0)
1080 { 1083 {