Skip to content

Commit 7bfd327

Browse files
authored
Change chunk env to use luau's load env parameter (#442)
1 parent 23d4e25 commit 7bfd327

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

mlua-sys/src/luau/compat.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ pub unsafe fn luaL_loadbufferx(
326326
mut size: usize,
327327
name: *const c_char,
328328
mode: *const c_char,
329+
env: c_int
329330
) -> c_int {
330331
extern "C" {
331332
fn free(p: *mut c_void);
@@ -345,12 +346,12 @@ pub unsafe fn luaL_loadbufferx(
345346

346347
if chunk_is_text {
347348
let data = luau_compile_(data, size, ptr::null_mut(), &mut size);
348-
let ok = luau_load(L, name, data, size, 0) == 0;
349+
let ok = luau_load(L, name, data, size, env) == 0;
349350
free(data as *mut c_void);
350351
if !ok {
351352
return LUA_ERRSYNTAX;
352353
}
353-
} else if luau_load(L, name, data, size, 0) != 0 {
354+
} else if luau_load(L, name, data, size, env) != 0 {
354355
return LUA_ERRSYNTAX;
355356
}
356357
LUA_OK
@@ -361,9 +362,9 @@ pub unsafe fn luaL_loadbuffer(
361362
L: *mut lua_State,
362363
data: *const c_char,
363364
size: usize,
364-
name: *const c_char,
365+
name: *const c_char
365366
) -> c_int {
366-
luaL_loadbufferx(L, data, size, name, ptr::null())
367+
luaL_loadbufferx(L, data, size, name, ptr::null(), 0)
367368
}
368369

369370
#[inline(always)]

src/state/raw.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,13 +319,22 @@ impl RawLua {
319319
source.len(),
320320
name.map(|n| n.as_ptr()).unwrap_or_else(ptr::null),
321321
mode_str,
322+
#[cfg(feature="luau")]
323+
match &env {
324+
Some(env) => {
325+
self.push_ref(&env.0);
326+
-1
327+
}
328+
_ => 0
329+
},
322330
) {
323331
ffi::LUA_OK => {
324332
if let Some(env) = env {
333+
#[cfg(not(feature="luau"))]
325334
self.push_ref(&env.0);
326335
#[cfg(any(feature = "lua54", feature = "lua53", feature = "lua52"))]
327336
ffi::lua_setupvalue(state, -2, 1);
328-
#[cfg(any(feature = "lua51", feature = "luajit", feature = "luau"))]
337+
#[cfg(any(feature = "lua51", feature = "luajit"))]
329338
ffi::lua_setfenv(state, -2);
330339
}
331340

0 commit comments

Comments
 (0)