mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-11 17:51:04 +00:00
Modernize lua read (part 2 & 3): C++ templating assurance (#7410)
* Modernize lua read (part 2 & 3): C++ templating assurance Implement the boolean reader Implement the string reader Also remove unused & unimplemented script_error_handler Add a reader with default value
This commit is contained in:
parent
227c71eb76
commit
eef62c82a2
35 changed files with 247 additions and 154 deletions
|
@ -133,7 +133,7 @@ int ScriptApiBase::luaPanic(lua_State *L)
|
|||
{
|
||||
std::ostringstream oss;
|
||||
oss << "LUA PANIC: unprotected error in call to Lua API ("
|
||||
<< lua_tostring(L, -1) << ")";
|
||||
<< readParam<std::string>(L, -1) << ")";
|
||||
FATAL_ERROR(oss.str().c_str());
|
||||
// NOTREACHED
|
||||
return 0;
|
||||
|
@ -184,7 +184,7 @@ void ScriptApiBase::loadScript(const std::string &script_path)
|
|||
}
|
||||
ok = ok && !lua_pcall(L, 0, 0, error_handler);
|
||||
if (!ok) {
|
||||
std::string error_msg = lua_tostring(L, -1);
|
||||
std::string error_msg = readParam<std::string>(L, -1);
|
||||
lua_pop(L, 2); // Pop error message and error handler
|
||||
throw ModError("Failed to load and run script from " +
|
||||
script_path + ":\n" + error_msg);
|
||||
|
@ -286,10 +286,10 @@ void ScriptApiBase::stackDump(std::ostream &o)
|
|||
int t = lua_type(m_luastack, i);
|
||||
switch (t) {
|
||||
case LUA_TSTRING: /* strings */
|
||||
o << "\"" << lua_tostring(m_luastack, i) << "\"";
|
||||
o << "\"" << readParam<std::string>(m_luastack, i) << "\"";
|
||||
break;
|
||||
case LUA_TBOOLEAN: /* booleans */
|
||||
o << (lua_toboolean(m_luastack, i) ? "true" : "false");
|
||||
o << (readParam<bool>(m_luastack, i) ? "true" : "false");
|
||||
break;
|
||||
case LUA_TNUMBER: /* numbers */ {
|
||||
char buf[10];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue