From 2dd7e5b51ed5ef6e158f93331ecd1058b9a9c23d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 27 Mar 2018 18:03:03 -0400 Subject: [PATCH] zig has extern unions now --- src/main.zig | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/main.zig b/src/main.zig index 1fac870..9771b8e 100644 --- a/src/main.zig +++ b/src/main.zig @@ -21,19 +21,8 @@ extern fn SDL_PollEvent(event: &c.SDL_Event) c_int; // and to debuggers. // SDL_rwops.h:#define SDL_RWclose(ctx) (ctx)->close(ctx) inline fn SDL_RWclose(ctx: &c.SDL_RWops) c_int { - const aligned_ctx = @alignCast(@alignOf(my_SDL_RWops), ctx); - const casted_ctx = @ptrCast(&my_SDL_RWops, aligned_ctx); - return casted_ctx.close(casted_ctx); + return (??ctx.close)(ctx); } -// Zig does not support extern unions yet. -// See https://github.com/zig-lang/zig/issues/144 -const my_SDL_RWops = extern struct { - size: extern fn()void, - seek: extern fn()void, - read: extern fn()void, - write: extern fn()void, - close: extern fn(context: &my_SDL_RWops)c_int, -}; pub fn main() !void { if (c.SDL_Init(c.SDL_INIT_VIDEO) != 0) {