From 15c316765d2ee2a0b8aec78fd6b13d9367f3c91e Mon Sep 17 00:00:00 2001 From: kwolekr Date: Sat, 14 Dec 2013 01:59:16 -0500 Subject: [PATCH] Handle Lua errors in on_generate callbacks instead of throwing SIGABRT --- src/emerge.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/emerge.cpp b/src/emerge.cpp index f096bb87..2f757a76 100644 --- a/src/emerge.cpp +++ b/src/emerge.cpp @@ -554,9 +554,11 @@ void *EmergeThread::Thread() { MapEditEventAreaIgnorer ign(&m_server->m_ignore_map_edit_events_area, VoxelArea(minp, maxp)); - { // takes about 90ms with -O1 on an e3-1230v2 + try { // takes about 90ms with -O1 on an e3-1230v2 m_server->getScriptIface()->environment_OnGenerated( minp, maxp, emerge->getBlockSeed(minp)); + } catch(LuaError &e) { + m_server->setAsyncFatalError(e.what()); } EMERGE_DBG_OUT("ended up with: " << analyze_block(block));