Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/core/StarLua.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2025-05-31 06:33:11 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2025-05-31 06:33:11 +1000
commitc8aea48d84a1da84759a6a15b95212ca43082581 (patch)
tree8ad60e10fc5ff24bddf6b7bea7c74caad266c31c /source/core/StarLua.cpp
parentd4f886eed6015fcadc572092c6d5e8680bd11149 (diff)
fix Lua strings inside JSON always being null-terminated
Diffstat (limited to 'source/core/StarLua.cpp')
-rw-r--r--source/core/StarLua.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/core/StarLua.cpp b/source/core/StarLua.cpp
index b70fe59..bd27129 100644
--- a/source/core/StarLua.cpp
+++ b/source/core/StarLua.cpp
@@ -159,7 +159,7 @@ Maybe<Json> LuaConverter<Json>::to(LuaEngine&, LuaValue const& v) {
return Json(*f);
if (auto s = v.ptr<LuaString>())
- return Json(s->ptr());
+ return Json(s->toString());
if (v.is<LuaTable>())
return LuaDetail::tableToJsonContainer(v.get<LuaTable>());
@@ -474,16 +474,20 @@ lua_Debug const& LuaEngine::debugInfo(int level, const char* what) {
return debug;
}
-LuaString LuaEngine::createString(String const& str) {
+LuaString LuaEngine::createString(std::string const& str) {
lua_checkstack(m_state, 1);
if (m_nullTerminated > 0)
- lua_pushstring(m_state, str.utf8Ptr());
+ lua_pushstring(m_state, str.data());
else
- lua_pushlstring(m_state, str.utf8Ptr(), str.utf8Size());
+ lua_pushlstring(m_state, str.data(), str.size());
return LuaString(LuaDetail::LuaHandle(RefPtr<LuaEngine>(this), popHandle(m_state)));
}
+LuaString LuaEngine::createString(String const& str) {
+ return createString(str.utf8());
+}
+
LuaString LuaEngine::createString(char const* str) {
lua_checkstack(m_state, 1);