aboutsummaryrefslogtreecommitdiff
path: root/src/wl/display.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/wl/display.zig')
-rw-r--r--src/wl/display.zig10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/wl/display.zig b/src/wl/display.zig
index 2a7b94c..d8b9e93 100644
--- a/src/wl/display.zig
+++ b/src/wl/display.zig
@@ -83,7 +83,7 @@ pub fn request(self: *Self, object: anytype, args: @TypeOf(object.*).Request) !v
inline for (@typeInfo(tag_type).@"enum".fields) |f| {
if (f.value == opcode) {
const data = if (@FieldType(@TypeOf(args), f.name) == void) .{} else @field(args, f.name);
- const id: u32 = @truncate(object.handle);
+ const id: u32 = object.handle.id;
var size: u32 = 8;
comptime var count_fds = 0;
@@ -131,8 +131,8 @@ pub fn request(self: *Self, object: anytype, args: @TypeOf(object.*).Request) !v
inline for (data) |value| {
switch (@TypeOf(value)) {
u32, i32 => _ = try self.stream.writeAll(std.mem.asBytes(&value)),
- wayland.Object.Ref => try self.stream.writeAll(std.mem.asBytes(&(@as(u32, @truncate(value))))),
- ?wayland.Object.Ref => try self.stream.writeAll(std.mem.asBytes(&(@as(u32, @truncate(if (value) |v| v else 0))))),
+ wayland.Object.Ref => try self.stream.writeAll(std.mem.asBytes(&value.id)),
+ ?wayland.Object.Ref => try self.stream.writeAll(std.mem.asBytes(&(if (value) |v| v else 0))),
[]const u8, []u8 => {
const padding_size: usize = padding_len(u8, value.len + 1);
_ = try self.stream.writeAll(std.mem.asBytes(&@as(u32, @truncate(value.len + 1))));
@@ -184,7 +184,7 @@ fn read_event(self: *Self, ctx: *const wayland.Context) !void {
return error.UnregisteredObject;
}
- if (self.registry.get(object_id)) |object| {
+ if (self.registry.get_by_id(object_id)) |object| {
try object.on_event(ctx, opcode, body);
} else {
return error.UnregisteredObject;
@@ -230,7 +230,7 @@ fn delete_id(
id: u32,
) void {
_ = ctx;
- self.registry.release_object(id);
+ self.registry.release_object(.{ .id = id });
}
test "request" {