From ace6aeebcf95930ce52bb277e1899f7c050378d4 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 9 Jan 2023 14:45:43 +0100 Subject: [PATCH] common: fix build on aarch64 and others On aarch64 for example, function alignment is 4 so we need to @alignCast() when casting ?*const anyopaque to function pointers. --- src/common_core.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common_core.zig b/src/common_core.zig index e406f58..84213a8 100644 --- a/src/common_core.zig +++ b/src/common_core.zig @@ -100,7 +100,8 @@ pub fn Dispatcher(comptime Obj: type, comptime Data: type) type { } } - @ptrCast(*const fn (*Obj, Payload, Data) void, implementation)( + const HandlerFn = fn (*Obj, Payload, Data) void; + @ptrCast(*const HandlerFn, @alignCast(@alignOf(HandlerFn), implementation))( @ptrCast(*Obj, object), @unionInit(Payload, payload_field.name, payload_data), @intToPtr(Data, @ptrToInt(object.getUserData())),