Skip to content

Commit 930fd9c

Browse files
committed
Fix Value::String::to_pointer for Lua < 5.4
1 parent 2a8db87 commit 930fd9c

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/value.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,14 @@ impl Value {
129129
#[inline]
130130
pub fn to_pointer(&self) -> *const c_void {
131131
match self {
132+
Value::String(String(vref)) => {
133+
// In Lua < 5.4 (excluding Luau), string pointers are NULL
134+
// Use alternative approach
135+
let lua = vref.lua.lock();
136+
unsafe { ffi::lua_tostring(lua.ref_thread(), vref.index) as *const c_void }
137+
}
132138
Value::LightUserData(ud) => ud.0,
133-
Value::String(String(vref))
134-
| Value::Table(Table(vref))
139+
Value::Table(Table(vref))
135140
| Value::Function(Function(vref))
136141
| Value::Thread(Thread(vref, ..))
137142
| Value::UserData(AnyUserData(vref))

0 commit comments

Comments
 (0)