diff --git a/src/actions/build_package.zig b/src/actions/build_package.zig index e8ed161..2b9e116 100644 --- a/src/actions/build_package.zig +++ b/src/actions/build_package.zig @@ -296,11 +296,9 @@ fn luaEnvSet(state: ?*zlua.LuaState) callconv(.c) c_int { return 2; } - const ud = lua.toUserdata(lua.upvalueIndex(1)) orelse { - lua.pushNil(); - _ = lua.pushLString("null userdata"); - return 2; - }; + const ud = lua.toUserdata(lua.upvalueIndex(1)); + assert(ud != null); + const env_map: *std.process.Environ.Map = @ptrCast(@alignCast(ud)); const key = lua.toLString(1); @@ -326,11 +324,9 @@ fn luaEnvGet(state: ?*zlua.LuaState) callconv(.c) c_int { return 2; } - const ud = lua.toUserdata(lua.upvalueIndex(1)) orelse { - lua.pushNil(); - _ = lua.pushLString("null userdata"); - return 2; - }; + const ud = lua.toUserdata(lua.upvalueIndex(1)); + assert(ud != null); + const env_map: *std.process.Environ.Map = @ptrCast(@alignCast(ud)); const key = lua.toString(1); @@ -351,11 +347,9 @@ fn luaEnvAppend(state: ?*zlua.LuaState) callconv(.c) c_int { return 2; } - const ud = lua.toUserdata(lua.upvalueIndex(1)) orelse { - lua.pushNil(); - _ = lua.pushLString("null userdata"); - return 2; - }; + const ud = lua.toUserdata(lua.upvalueIndex(1)); + assert(ud != null); + const env: *std.process.Environ.Map = @ptrCast(@alignCast(ud)); const key = lua.toLString(1); @@ -391,7 +385,10 @@ fn luaRun(state: ?*zlua.LuaState) callconv(.c) c_int { return 2; } - const ctx: *const RunContext = @ptrCast(@alignCast(lua.toUserdata(lua.upvalueIndex(1)))); + const ud = lua.toUserdata(lua.upvalueIndex(1)); + assert(ud != null); + + const ctx: *const RunContext = @ptrCast(@alignCast(ud)); var scratch_arena: std.heap.ArenaAllocator = .init(ctx.gpa); defer scratch_arena.deinit(); @@ -508,7 +505,10 @@ const DepContext = struct { fn luaDep(state: ?*zlua.LuaState) callconv(.c) c_int { const lua: zlua.State = .{ .inner = state.? }; - const ctx: *const DepContext = @ptrCast(@alignCast(lua.toUserdata(lua.upvalueIndex(1)))); + const ud = lua.toUserdata(lua.upvalueIndex(1)); + assert(ud != null); + + const ctx: *const DepContext = @ptrCast(@alignCast(ud)); var arena_impl: std.heap.ArenaAllocator = .init(ctx.gpa); defer arena_impl.deinit(); @@ -572,9 +572,14 @@ fn luaDep(state: ?*zlua.LuaState) callconv(.c) c_int { const PathJoinContext = struct { gpa: Allocator, }; + fn luaPathJoin(state: ?*zlua.LuaState) callconv(.c) c_int { const lua: zlua.State = .{ .inner = state.? }; - const ctx: *const PathJoinContext = @ptrCast(@alignCast(lua.toUserdata(lua.upvalueIndex(1)))); + + const ud = lua.toUserdata(lua.upvalueIndex(1)); + assert(ud != null); + + const ctx: *const PathJoinContext = @ptrCast(@alignCast(ud)); const argc: usize = @intCast(lua.getTop()); diff --git a/src/lua_helpers.zig b/src/lua_helpers.zig index bede34c..d4c9e58 100644 --- a/src/lua_helpers.zig +++ b/src/lua_helpers.zig @@ -1,6 +1,7 @@ const std = @import("std"); const zlua = @import("zlua"); const builtin = @import("builtin"); +const assert = std.debug.assert; pub fn lua_pkg(state: ?*zlua.LuaState) callconv(.c) c_int { const lua: zlua.State = .{ .inner = state.? }; @@ -36,7 +37,7 @@ pub fn pushChecked( native: zlua.CFunction, context: ?*anyopaque, ) !void { - std.debug.assert(lua.getField(zlua.REGISTRYINDEX, "packa.checked") == .function); + assert(lua.getField(zlua.REGISTRYINDEX, "packa.checked") == .function); var upvalues: usize = 0; if (context) |ctx| { @@ -53,7 +54,11 @@ const TestContext = struct { fn testFailure(state: ?*zlua.LuaState) callconv(.c) c_int { const lua: zlua.State = .{ .inner = state.? }; - const context: *TestContext = @ptrCast(@alignCast(lua.toUserdata(lua.upvalueIndex(1)))); + + const ud = lua.toUserdata(lua.upvalueIndex(1)); + assert(ud != null); + + const context: *TestContext = @ptrCast(@alignCast(ud)); defer context.cleaned = true; lua.pushNil();