diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2023-08-18 11:55:29 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2023-08-18 11:55:29 +0200 |
| commit | 274400c57d97dc4ea8fff5a6f516feac93eca4e0 (patch) | |
| tree | 893a93cea172127cfbadd30e646b521b74a832f9 /lib/std/macho.zig | |
| parent | 71cc2e67593fb5da38e84900ef4c409f6aa99b94 (diff) | |
| download | zig-274400c57d97dc4ea8fff5a6f516feac93eca4e0.tar.gz zig-274400c57d97dc4ea8fff5a6f516feac93eca4e0.zip | |
macho: add helper for accessing tools array in LC_BUILD_VERSION cmd
Diffstat (limited to 'lib/std/macho.zig')
| -rw-r--r-- | lib/std/macho.zig | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/std/macho.zig b/lib/std/macho.zig index d70e3448bd..5cd632b3a6 100644 --- a/lib/std/macho.zig +++ b/lib/std/macho.zig @@ -1898,6 +1898,16 @@ pub const LoadCommandIterator = struct { const data = lc.data[rpath_lc.path..]; return mem.sliceTo(data, 0); } + + /// Asserts LoadCommand is of type build_version_command. + pub fn getBuildVersionTools(lc: LoadCommand) []const build_tool_version { + const build_lc = lc.cast(build_version_command).?; + const ntools = build_lc.ntools; + if (ntools == 0) return &[0]build_tool_version{}; + const data = lc.data[@sizeOf(build_version_command)..]; + const tools = @as([*]const build_tool_version, @ptrCast(@alignCast(&data[0])))[0..ntools]; + return tools; + } }; pub fn next(it: *LoadCommandIterator) ?LoadCommand { |
