aboutsummaryrefslogtreecommitdiff
path: root/lib/std/debug.zig
diff options
context:
space:
mode:
authorLucas Santos <117400842+LucasSantos91@users.noreply.github.com>2024-07-15 14:49:51 -0300
committerGitHub <noreply@github.com>2024-07-15 10:49:51 -0700
commit89942ebd03b2943cbbe84b575a024e156ca5bf52 (patch)
tree0892910484a47d30d4c5f2dccff9f16d0162687e /lib/std/debug.zig
parentcf36d3fdd3674bfb95f22aa7bc7ff450ebdc1c08 (diff)
downloadzig-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.zig2
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),
}
}