1
0
forked from mirror/vulkan-zig

default initialize packed flag structs to 0

This commit is contained in:
Robin Voetter
2025-03-15 13:24:36 +01:00
parent f6e9565ab6
commit d046ace4d8
3 changed files with 24 additions and 4 deletions

View File

@@ -993,11 +993,16 @@ fn Renderer(comptime WriterType: type) type {
fn renderSimpleBitContainer(self: *Self, container: reg.Container) !bool {
var total_bits: usize = 0;
var is_flags_container = true;
for (container.fields) |field| {
total_bits += field.bits orelse {
const bits = field.bits orelse {
// C abi type - not a packed struct.
return false;
};
total_bits += bits;
if (bits != 1) {
is_flags_container = false;
}
}
try self.writer.writeAll("packed struct(u32) {");
@@ -1012,7 +1017,11 @@ fn Renderer(comptime WriterType: type) type {
try self.writer.print(" u{} = 0,\n", .{field.bits.?});
} else if (bits == 1) {
// Assume its a flag.
try self.writer.writeAll(" bool,\n");
if (is_flags_container) {
try self.writer.writeAll(" bool = false,\n");
} else {
try self.writer.writeAll(" bool,\n");
}
} else {
try self.writer.print(" u{},\n", .{field.bits.?});
}