authorgravatar for m.rosowski1@wp.plMikołaj Rosowski <m.rosowski1@wp.pl> 2026-04-17 16:55:26+02:00
committergravatar for m.rosowski1@wp.plMikołaj Rosowski <m.rosowski1@wp.pl> 2026-04-17 22:33:17+02:00
log7020c9e4a9f340bb390f13b27aef32450d165310
treec6f1cb8a4273945a1ce6f0a823f8c585eac7e866
parent0473ddb1a7f94c3af7ddfd26cf714614c63fe314

std.os.uefi: pass null terminator in `(un)installMultipleProtocolInterfaces`


1 files changed, 6 insertions(+), 3 deletions(-)

lib/std/os/uefi/tables/boot_services.zig+6-3
......@@ -1236,6 +1236,7 @@ fn protocolInterfaces(
12361236 @TypeOf(interfaces),
12371237 ) = undefined;
12381238 result[0] = handle_arg;
1239 result[result.len - 1] = null;
12391240
12401241 comptime var idx: usize = 1;
12411242 inline for (interfaces) |interface| {
......@@ -1270,13 +1271,15 @@ fn ProtocolInterfaces(HandleType: type, Interfaces: type) type {
12701271 @compileError("expected tuple of protocol interfaces, got " ++ @typeName(Interfaces));
12711272 const interfaces_info = interfaces_type_info.@"struct";
12721273
1273 var tuple_types: [interfaces_info.fields.len * 2 + 1]type = undefined;
1274 var tuple_types: [interfaces_info.fields.len * 2 + 2]type = undefined;
12741275 tuple_types[0] = HandleType;
1276 tuple_types[tuple_types.len - 1] = ?*const Guid;
1277
12751278 var idx = 1;
1276 while (idx < tuple_types.len) : (idx += 2) {
1279 while (idx < tuple_types.len - 1) : (idx += 2) {
12771280 tuple_types[idx] = *const Guid;
12781281 tuple_types[idx + 1] = *const anyopaque;
12791282 }
12801283
1281 return std.meta.Tuple(tuple_types[0..]);
1284 return @Tuple(tuple_types[0..]);
12821285}