From 1d26a5c1138813efac3d5b9db1e925b8a1eefd13 Mon Sep 17 00:00:00 2001 From: Lucas Schwiderski Date: Sat, 25 Feb 2023 16:28:21 +0100 Subject: [PATCH] fix(sdk): Fix generating Lua file names during compilation --- lib/sdk/src/filetype/lua.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/sdk/src/filetype/lua.rs b/lib/sdk/src/filetype/lua.rs index f2f4ef5..68b95e3 100644 --- a/lib/sdk/src/filetype/lua.rs +++ b/lib/sdk/src/filetype/lua.rs @@ -1,8 +1,10 @@ use std::ffi::CStr; +use std::ffi::CString; use std::io::Cursor; use std::io::Write; use color_eyre::eyre; +use color_eyre::eyre::Context; use color_eyre::Result; use luajit2_sys as lua; @@ -22,10 +24,10 @@ where #[tracing::instrument(skip_all)] pub fn compile(name: S, code: C) -> Result where - S: ToString, + S: Into, C: AsRef, { - let name = name.to_string(); + let name = name.into(); let code = code.as_ref(); let bytecode = unsafe { @@ -35,6 +37,8 @@ where lua::lua_pushstring(state, code.as_ptr() as _); lua::lua_setglobal(state, b"code\0".as_ptr() as _); + let name = CString::new(name.as_bytes()) + .wrap_err_with(|| format!("cannot convert name into CString: {}", name))?; lua::lua_pushstring(state, name.as_ptr() as _); lua::lua_setglobal(state, b"name\0".as_ptr() as _);