diff options
| author | Lucas Santos <117400842+LucasSantos91@users.noreply.github.com> | 2024-07-15 14:49:51 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-15 10:49:51 -0700 |
| commit | 89942ebd03b2943cbbe84b575a024e156ca5bf52 (patch) | |
| tree | 0892910484a47d30d4c5f2dccff9f16d0162687e /lib/std/debug.zig | |
| parent | cf36d3fdd3674bfb95f22aa7bc7ff450ebdc1c08 (diff) | |
| download | zig-89942ebd03b2943cbbe84b575a024e156ca5bf52.tar.gz zig-89942ebd03b2943cbbe84b575a024e156ca5bf52.zip | |
Better implementation of GetLastError. (#20623)
Instead of calling the dynamically loaded kernel32.GetLastError, we can extract it from the TEB.
As shown by [Wine](https://github.com/wine-mirror/wine/blob/34b1606019982b71818780bc84b76460f650af31/include/winternl.h#L439), the last error lives at offset 0x34 of the TEB in 32-bit Windows and at offset 0x68 in 64-bit Windows.
Diffstat (limited to 'lib/std/debug.zig')
| -rw-r--r-- | lib/std/debug.zig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 29294be0d9..b2bc82029d 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -1781,7 +1781,7 @@ pub const DebugInfo = struct { const handle = windows.kernel32.CreateToolhelp32Snapshot(windows.TH32CS_SNAPMODULE | windows.TH32CS_SNAPMODULE32, 0); if (handle == windows.INVALID_HANDLE_VALUE) { - switch (windows.kernel32.GetLastError()) { + switch (windows.GetLastError()) { else => |err| return windows.unexpectedError(err), } } |
