| ... | @@ -1236,6 +1236,7 @@ fn protocolInterfaces( | ... | @@ -1236,6 +1236,7 @@ fn protocolInterfaces( |
| 1236 | @TypeOf(interfaces), | 1236 | @TypeOf(interfaces), |
| 1237 | ) = undefined; | 1237 | ) = undefined; |
| 1238 | result[0] = handle_arg; | 1238 | result[0] = handle_arg; |
| | 1239 | result[result.len - 1] = null; |
| 1239 | | 1240 | |
| 1240 | comptime var idx: usize = 1; | 1241 | comptime var idx: usize = 1; |
| 1241 | inline for (interfaces) |interface| { | 1242 | inline for (interfaces) |interface| { |
| ... | @@ -1270,13 +1271,15 @@ fn ProtocolInterfaces(HandleType: type, Interfaces: type) type { | ... | @@ -1270,13 +1271,15 @@ fn ProtocolInterfaces(HandleType: type, Interfaces: type) type { |
| 1270 | @compileError("expected tuple of protocol interfaces, got " ++ @typeName(Interfaces)); | 1271 | @compileError("expected tuple of protocol interfaces, got " ++ @typeName(Interfaces)); |
| 1271 | const interfaces_info = interfaces_type_info.@"struct"; | 1272 | const interfaces_info = interfaces_type_info.@"struct"; |
| 1272 | | 1273 | |
| 1273 | var tuple_types: [interfaces_info.fields.len * 2 + 1]type = undefined; | 1274 | var tuple_types: [interfaces_info.fields.len * 2 + 2]type = undefined; |
| 1274 | tuple_types[0] = HandleType; | 1275 | tuple_types[0] = HandleType; |
| | 1276 | tuple_types[tuple_types.len - 1] = ?*const Guid; |
| | 1277 | |
| 1275 | var idx = 1; | 1278 | var idx = 1; |
| 1276 | while (idx < tuple_types.len) : (idx += 2) { | 1279 | while (idx < tuple_types.len - 1) : (idx += 2) { |
| 1277 | tuple_types[idx] = *const Guid; | 1280 | tuple_types[idx] = *const Guid; |
| 1278 | tuple_types[idx + 1] = *const anyopaque; | 1281 | tuple_types[idx + 1] = *const anyopaque; |
| 1279 | } | 1282 | } |
| 1280 | | 1283 | |
| 1281 | return std.meta.Tuple(tuple_types[0..]); | 1284 | return @Tuple(tuple_types[0..]); |
| 1282 | } | 1285 | } |