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/Thread.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/Thread.zig')
| -rw-r--r-- | lib/std/Thread.zig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 3c2c9251d0..b3bb79db59 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -554,7 +554,7 @@ const WindowsThreadImpl = struct { 0, null, ) orelse { - const errno = windows.kernel32.GetLastError(); + const errno = windows.GetLastError(); return windows.unexpectedError(errno); }; |
