@@ -295,8 +295,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
295295
296296 // Store instance pointer in userdata if it's a pointer
297297 if (is_instance ) {
298- // Ensure the pointer is properly aligned before storing
299- cb .userdata = @ptrCast (@alignCast (callbacks ));
298+ cb .userdata = @ptrCast (@constCast (callbacks ));
300299 } else {
301300 cb .userdata = null ;
302301 }
@@ -308,7 +307,9 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
308307
309308 if (comptime is_instance ) {
310309 const callbacks_struct = state .callbacks ();
311- const instance : * CallbackType = @ptrCast (@alignCast (callbacks_struct .userdata .? ));
310+ // C pointers may not have the alignment Zig expects (Zig 0.15)
311+ // See: https://github.com/ziglang/zig/issues/24326
312+ const instance : * CallbackType = @ptrFromInt (@intFromPtr (callbacks_struct .userdata .? ));
312313 instance .interrupt (& state , @intCast (gc_flag ));
313314 } else {
314315 CallbackType .interrupt (& state , @intCast (gc_flag ));
@@ -324,7 +325,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
324325
325326 if (comptime is_instance ) {
326327 const callbacks_struct = state .callbacks ();
327- const instance : * CallbackType = @ptrCast ( @alignCast (callbacks_struct .userdata .? ));
328+ const instance : * CallbackType = @ptrFromInt ( @intFromPtr (callbacks_struct .userdata .? ));
328329 instance .panic (& state , @intCast (errcode ));
329330 } else {
330331 CallbackType .panic (& state , @intCast (errcode ));
@@ -341,7 +342,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
341342
342343 if (comptime is_instance ) {
343344 const callbacks_struct = thread_state .callbacks ();
344- const instance : * CallbackType = @ptrCast ( @alignCast (callbacks_struct .userdata .? ));
345+ const instance : * CallbackType = @ptrFromInt ( @intFromPtr (callbacks_struct .userdata .? ));
345346 instance .userthread (if (parent_state ) | * ps | ps else null , & thread_state );
346347 } else {
347348 CallbackType .userthread (if (parent_state ) | * ps | ps else null , & thread_state );
@@ -375,7 +376,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
375376
376377 if (comptime is_instance ) {
377378 const callbacks_struct = lua .state .callbacks ();
378- const instance : * CallbackType = @ptrCast ( @alignCast (callbacks_struct .userdata .? ));
379+ const instance : * CallbackType = @ptrFromInt ( @intFromPtr (callbacks_struct .userdata .? ));
379380 instance .debugbreak (& debug_instance , debug_info );
380381 } else {
381382 CallbackType .debugbreak (& debug_instance , debug_info );
@@ -393,7 +394,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
393394
394395 if (comptime is_instance ) {
395396 const callbacks_struct = lua .state .callbacks ();
396- const instance : * CallbackType = @ptrCast ( @alignCast (callbacks_struct .userdata .? ));
397+ const instance : * CallbackType = @ptrFromInt ( @intFromPtr (callbacks_struct .userdata .? ));
397398 instance .debugstep (& debug_instance , debug_info );
398399 } else {
399400 CallbackType .debugstep (& debug_instance , debug_info );
@@ -411,7 +412,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
411412
412413 if (comptime is_instance ) {
413414 const callbacks_struct = lua .state .callbacks ();
414- const instance : * CallbackType = @ptrCast ( @alignCast (callbacks_struct .userdata .? ));
415+ const instance : * CallbackType = @ptrFromInt ( @intFromPtr (callbacks_struct .userdata .? ));
415416 instance .debuginterrupt (& debug_instance , debug_info );
416417 } else {
417418 CallbackType .debuginterrupt (& debug_instance , debug_info );
@@ -428,7 +429,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
428429
429430 if (comptime is_instance ) {
430431 const callbacks_struct = lua .state .callbacks ();
431- const instance : * CallbackType = @ptrCast ( @alignCast (callbacks_struct .userdata .? ));
432+ const instance : * CallbackType = @ptrFromInt ( @intFromPtr (callbacks_struct .userdata .? ));
432433 instance .debugprotectederror (& debug_instance );
433434 } else {
434435 CallbackType .debugprotectederror (& debug_instance );
@@ -445,7 +446,7 @@ pub fn setCallbacks(self: Self, callbacks: anytype) void {
445446
446447 if (comptime is_instance ) {
447448 const callbacks_struct = state .callbacks ();
448- const instance : * CallbackType = @ptrCast ( @alignCast (callbacks_struct .userdata .? ));
449+ const instance : * CallbackType = @ptrFromInt ( @intFromPtr (callbacks_struct .userdata .? ));
449450 instance .onallocate (& state , osize , nsize );
450451 } else {
451452 CallbackType .onallocate (& state , osize , nsize );
0 commit comments