read_lua_fragment: Don't duplicate the script infinite number of times
This commit is contained in:
parent
7f271989d9
commit
b021e7b5af
2 changed files with 7 additions and 7 deletions
|
@ -109,7 +109,7 @@ private:
|
|||
lua::state& L;
|
||||
command::group& command;
|
||||
bool recursive_flag;
|
||||
char* luareader_fragment;
|
||||
const char* luareader_fragment;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -99,7 +99,7 @@ namespace
|
|||
|
||||
const char* read_lua_fragment(lua_State* L, void* fragment, size_t* size)
|
||||
{
|
||||
const char* luareader_fragment = reinterpret_cast<const char*>(fragment);
|
||||
const char*& luareader_fragment = *reinterpret_cast<const char**>(fragment);
|
||||
if(luareader_fragment) {
|
||||
const char* ret = luareader_fragment;
|
||||
*size = strlen(luareader_fragment);
|
||||
|
@ -506,10 +506,10 @@ void lua_state::run_lua_fragment() throw(std::bad_alloc)
|
|||
if(recursive_flag)
|
||||
return;
|
||||
#if LUA_VERSION_NUM == 501
|
||||
int t = L.load(read_lua_fragment, luareader_fragment, "run_lua_fragment");
|
||||
int t = L.load(read_lua_fragment, &luareader_fragment, "run_lua_fragment");
|
||||
#endif
|
||||
#if LUA_VERSION_NUM == 502
|
||||
int t = L.load(read_lua_fragment, luareader_fragment, "run_lua_fragment", "t");
|
||||
int t = L.load(read_lua_fragment, &luareader_fragment, "run_lua_fragment", "t");
|
||||
#endif
|
||||
if(t == LUA_ERRSYNTAX) {
|
||||
messages << "Can't run Lua: Internal syntax error: " << L.tostring(-1)
|
||||
|
@ -548,7 +548,7 @@ void lua_state::do_eval_lua(const std::string& c) throw(std::bad_alloc)
|
|||
{
|
||||
L.pushlstring(c.c_str(), c.length());
|
||||
L.setglobal(TEMPORARY);
|
||||
luareader_fragment = const_cast<char*>(eval_lua_lua);
|
||||
luareader_fragment = eval_lua_lua;
|
||||
run_lua_fragment();
|
||||
}
|
||||
|
||||
|
@ -556,7 +556,7 @@ void lua_state::do_run_lua(const std::string& c) throw(std::bad_alloc)
|
|||
{
|
||||
L.pushlstring(c.c_str(), c.length());
|
||||
L.setglobal(TEMPORARY);
|
||||
luareader_fragment = const_cast<char*>(run_lua_lua);
|
||||
luareader_fragment = run_lua_lua;
|
||||
run_lua_fragment();
|
||||
}
|
||||
|
||||
|
@ -586,7 +586,7 @@ void lua_state::run_sysrc_lua()
|
|||
{
|
||||
L.pushstring(lua_sysrc_script);
|
||||
L.setglobal(TEMPORARY);
|
||||
luareader_fragment = const_cast<char*>(eval_sysrc_lua);
|
||||
luareader_fragment = eval_sysrc_lua;
|
||||
run_lua_fragment();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue