summaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_mainmenu.cpp
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2014-04-15 13:41:07 -0400
committerShadowNinja <shadowninja@minetest.net>2014-04-27 16:15:53 -0400
commit6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d (patch)
tree90e64f78dd3ceac12dbb21ac6b045500de0ca603 /src/script/lua_api/l_mainmenu.cpp
parentdb4ea4658c58772ee447ff0eff8bb39b692081ec (diff)
downloadminetest-6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d.tar.gz
minetest-6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d.tar.bz2
minetest-6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d.zip
Remove dependency on marshal and many other async changes
This makes a number of changes: * Remove the dependency on marshal by using string.dump and loadstring. * Use lua_tolstring rather than having Lua functions pass string lengths to C++. * Move lua_api/l_async_events.* to cpp_api/s_async.*, where it belongs. * Make AsyncWorkerThread a child of ScriptApiBase, this removes some duplicate functionality. * Don't wait for async threads to shut down. (Is this safe? Might result in corruption if the thread is writing to a file.) * Pop more unused items from the stack * Code style fixes * Other misc changes
Diffstat (limited to 'src/script/lua_api/l_mainmenu.cpp')
-rw-r--r--src/script/lua_api/l_mainmenu.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp
index 5de1c77f0..31fc45ce2 100644
--- a/src/script/lua_api/l_mainmenu.cpp
+++ b/src/script/lua_api/l_mainmenu.cpp
@@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "lua_api/l_mainmenu.h"
#include "lua_api/l_internal.h"
#include "common/c_content.h"
-#include "lua_api/l_async_events.h"
+#include "cpp_api/s_async.h"
#include "guiEngine.h"
#include "guiMainMenu.h"
#include "guiKeyChangeMenu.h"
@@ -1034,19 +1034,18 @@ int ModApiMainMenu::l_do_async_callback(lua_State *L)
{
GUIEngine* engine = getGuiEngine(L);
- const char* serialized_fct_raw = luaL_checkstring(L, 1);
- unsigned int lenght_fct = luaL_checkint(L, 2);
+ size_t func_length, param_length;
+ const char* serialized_func_raw = luaL_checklstring(L, 1, &func_length);
- const char* serialized_params_raw = luaL_checkstring(L, 3);
- unsigned int lenght_params = luaL_checkint(L, 4);
+ const char* serialized_param_raw = luaL_checklstring(L, 2, &param_length);
- assert(serialized_fct_raw != 0);
- assert(serialized_params_raw != 0);
+ assert(serialized_func_raw != NULL);
+ assert(serialized_param_raw != NULL);
- std::string serialized_fct = std::string(serialized_fct_raw,lenght_fct);
- std::string serialized_params = std::string(serialized_params_raw,lenght_params);
+ std::string serialized_func = std::string(serialized_func_raw, func_length);
+ std::string serialized_param = std::string(serialized_param_raw, param_length);
- lua_pushinteger(L,engine->DoAsync(serialized_fct,serialized_params));
+ lua_pushinteger(L, engine->DoAsync(serialized_func, serialized_param));
return 1;
}