diff --git a/lib/std/libc/os/win32.c3 b/lib/std/libc/os/win32.c3 index c8fd0146d..b480fb7eb 100644 --- a/lib/std/libc/os/win32.c3 +++ b/lib/std/libc/os/win32.c3 @@ -15,7 +15,7 @@ extern fn Time_t _mkgmtime64(Tm* timeptr); def timegm = _mkgmtime64; extern fn Time_t _mktime64(Tm *timeptr); def mktime = _mktime64; extern fn usz _msize(void* ptr); extern fn CInt _read(Fd fd, void* buffer, CUInt buffer_size); -extern fn CInt _setjmp(void* frameptr, JmpBuf* buffer); +extern fn CInt _setjmp(JmpBuf* buffer, void* frameptr); extern fn CFile _wfopen(WString, WString); extern fn CFile _wfreopen(WString, WString, CFile); extern fn CInt _write(Fd fd, void* buffer, CUInt count); @@ -47,7 +47,7 @@ extern fn CInt get_system_info(SystemInfo*) @extern("GetSystemInfo"); // Aliases to simplify libc use macro Tm* localtime_r(Time_t* timer, Tm* buf) => _localtime64_s(buf, timer); -macro CInt setjmp(JmpBuf* buffer) => _setjmp($$frameaddress(0), buffer); +macro CInt setjmp(JmpBuf* buffer) => _setjmp(buffer, null); macro Tm* gmtime_r(Time_t* timer, Tm* buf) => _gmtime64_s(buf, timer); macro isz read(Fd fd, void* buffer, usz buffer_size) => _read(fd, buffer, (CUInt)buffer_size); macro isz write(Fd fd, void* buffer, usz count) => _write(fd, buffer, (CUInt)count); \ No newline at end of file diff --git a/releasenotes.md b/releasenotes.md index 81e9046fa..d7c7d8f3f 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -60,12 +60,13 @@ - `%` analysis was incorrect for int vectors. - When resolving inherited interfaces, the interface type wasn't always resolved. - Fix issues when checking methods and interfaces hasn't been resolved yet. +- Fix Vec2.angle +- Update to libc::setjmp on Win32, to do no stack unwinding. ### Stdlib changes - `send` and `recv` added to `libc` for Posix / Win32. - Add support to destroy temp allocators. -- Fix Vec2.angle ## 0.6.1 Change list