diff options
| author | Ryan Liptak <squeek502@hotmail.com> | 2025-10-10 23:04:40 -0700 |
|---|---|---|
| committer | Ryan Liptak <squeek502@hotmail.com> | 2025-11-15 18:16:03 -0800 |
| commit | 6aa3570cb0e599e89748073612e8d0317100c807 (patch) | |
| tree | f33c2d40c295b6e0a67c31a5b7b7d22f8cf49202 /src/codegen/c.zig | |
| parent | 06a7597ea8ac8d66f20f75580f8e0a6964e1861e (diff) | |
| download | zig-6aa3570cb0e599e89748073612e8d0317100c807.tar.gz zig-6aa3570cb0e599e89748073612e8d0317100c807.zip | |
windows: Make readLinkW APIs output WTF-16, reduce stack usage of callers
- Affects the following functions:
+ `std.fs.Dir.readLinkW`
+ `std.os.windows.ReadLink`
+ `std.os.windows.ntToWin32Namespace`
+ `std.posix.readlinkW`
+ `std.posix.readlinkatW`
Each of these functions (except `ntToWin32Namespace`) took WTF-16 as input and would output WTF-8, which makes optimal buffer re-use difficult at callsites and could force unnecessary WTF-16 <-> WTF-8 conversion during an intermediate step.
The functions have been updated to output WTF-16, and also allow for the path and the output to re-use the same buffer (i.e. in-place modification), which can reduce the stack usage at callsites. For example, all of `std.fs.Dir.readLink`/`readLinkZ`/`std.posix.readlink`/`readlinkZ`/`readlinkat`/`readlinkatZ` have had their stack usage reduced by one PathSpace struct (64 KiB) when targeting Windows.
The new `ntToWin32Namespace` takes an output buffer and returns a slice from that instead of returning a PathSpace, which is necessary to make the above possible.
Diffstat (limited to 'src/codegen/c.zig')
0 files changed, 0 insertions, 0 deletions
