diff options
Diffstat (limited to 'src/event-set.zig')
| -rw-r--r-- | src/event-set.zig | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/event-set.zig b/src/event-set.zig index 5721a4e..27c28bf 100644 --- a/src/event-set.zig +++ b/src/event-set.zig @@ -4,7 +4,6 @@ const wayland = @import("root.zig"); pub fn EventSet(T: type, events: anytype) type { return struct { pub fn on_event(ptr: *anyopaque, ctx: *wayland.Context, opcode: u16, args: []const u8) void { - std.debug.print("event {} {}\n", .{T, opcode}); var offset: usize = 0; inline for (events, 0..) |event, index| { if (@TypeOf(event) != @TypeOf(null) and index == opcode) { @@ -31,7 +30,7 @@ pub fn EventSet(T: type, events: anytype) type { }, *wayland.Object => { const result = std.mem.readPackedIntNative(u32, args, offset * 8); - fn_args[arg_index] = ctx.display.registry.objects.items[result] orelse unreachable; + fn_args[arg_index] = ctx.display.registry.get(result) orelse unreachable; offset += @sizeOf(u32); }, else => |t| switch (@typeInfo(t)) { @@ -67,7 +66,7 @@ test { a: u32 = 0, b: u32 = 0, - pub fn something(self: *@This(), a: u32, b: u32) void { + pub fn something(self: *@This(), _: *wayland.Context, a: u32, b: u32) void { self.a = a; self.b = b; } @@ -75,8 +74,9 @@ test { var dummy = Dummy{}; const Events = EventSet(Dummy, .{null, Dummy.something }); + var ctx: wayland.Context = undefined; - Events.on_event(&dummy, 1, &(std.mem.toBytes(@as(u32, 1)) ++ std.mem.toBytes(@as(u32, 2)))); + Events.on_event(&dummy, &ctx, 1, &(std.mem.toBytes(@as(u32, 1)) ++ std.mem.toBytes(@as(u32, 2)))); try std.testing.expectEqual(dummy.a, 1); try std.testing.expectEqual(dummy.b, 2); |