diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/wl/display.zig | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/wl/display.zig b/src/wl/display.zig index ed4a94f..3b5087d 100644 --- a/src/wl/display.zig +++ b/src/wl/display.zig @@ -91,7 +91,8 @@ pub fn request(self: *Self, object: anytype, args: @TypeOf(object.*).Request) !v inline for (data) |value| { switch (@TypeOf(value)) { u32, i32 => |t| size += @sizeOf(t), - wayland.Object.Ref => size += @sizeOf(u32), + wayland.Object.Ref, + ?wayland.Object.Ref => size += @sizeOf(u32), []const u8, []u8 => { const padding_size: usize = padding_len(u8, value.len + 1); size += @as(u32, @intCast(@sizeOf(u32) + (value.len + 1) + padding_size)); @@ -114,6 +115,7 @@ pub fn request(self: *Self, object: anytype, args: @TypeOf(object.*).Request) !v 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, 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)))); |