mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-27 18:51:44 +03:00
Fix std.uefi.protocol.DevicePath.next() and add utility function isEnd() (#30887)
Fix for https://codeberg.org/ziglang/zig/issues/30884 and https://codeberg.org/ziglang/zig/issues/30885 Co-authored-by: jsentity <jsentity@noreply.codeberg.org> Co-committed-by: jsentity <jsentity@noreply.codeberg.org>
This commit is contained in:
@@ -26,12 +26,10 @@ pub const DevicePath = extern struct {
|
||||
|
||||
/// Returns the next DevicePath node in the sequence, if any.
|
||||
pub fn next(self: *const DevicePath) ?*const DevicePath {
|
||||
const subtype: uefi.DevicePath.End.Subtype = @enumFromInt(self.subtype);
|
||||
if (self.type == .end and subtype == .end_entire) return null;
|
||||
const bytes: [*]const u8 = @ptrCast(self);
|
||||
const next_node: *const DevicePath = @ptrCast(bytes + self.length);
|
||||
if (next_node.type == .end and @as(uefi.DevicePath.End.Subtype, @enumFromInt(next_node.subtype)) == .end_entire)
|
||||
return null;
|
||||
|
||||
return next_node;
|
||||
return @ptrCast(bytes + self.length);
|
||||
}
|
||||
|
||||
/// Calculates the total length of the device path structure in bytes, including the end of device path node.
|
||||
|
||||
Reference in New Issue
Block a user