Makes Lua::run const

This commit is contained in:
Felipe Zimmerle
2020-06-08 13:01:45 -03:00
parent 3bdd96c603
commit 542a5c451a
3 changed files with 16 additions and 6 deletions

View File

@@ -121,7 +121,7 @@ const char *Lua::blob_reader(lua_State *L, void *ud, size_t *size) {
#endif
int Lua::run(Transaction *t, const std::string &str) {
int Lua::run(Transaction *t, const std::string &str) const {
#ifdef WITH_LUA
std::string luaRet;
const char *a = NULL;
@@ -138,10 +138,12 @@ int Lua::run(Transaction *t, const std::string &str) {
luaL_setfuncs(L, mscLuaLib, 0);
lua_setglobal(L, "m");
LuaScriptBlob blob(m_blob);
#ifdef WITH_LUA_5_1
int rc = lua_load(L, Lua::blob_reader, &m_blob, m_scriptName.c_str());
int rc = lua_load(L, Lua::blob_reader, &blob, m_scriptName.c_str());
#else
int rc = lua_load(L, Lua::blob_reader, &m_blob, m_scriptName.c_str(),
int rc = lua_load(L, Lua::blob_reader, &blob, m_scriptName.c_str(),
NULL);
#endif
if (rc != LUA_OK) {

View File

@@ -43,6 +43,14 @@ class LuaScriptBlob {
}
}
LuaScriptBlob(const LuaScriptBlob &other) :
m_data(NULL),
m_len(other.m_len) {
m_data = (unsigned char *)std::malloc(m_len);
// FIXME: m_data NULL?
std::memcpy(m_data, other.m_data, m_len);
}
void write(const void *data, size_t len) {
unsigned char *d = (unsigned char *)realloc((unsigned char *)m_data, len + m_len);
@@ -68,7 +76,7 @@ class Lua {
Lua() { }
bool load(const std::string &script, std::string *err);
int run(Transaction *t, const std::string &str="");
int run(Transaction *t, const std::string &str="") const;
static bool isCompatible(const std::string &script, Lua *l, std::string *error);
#ifdef WITH_LUA