* win32: fixed a setjmp related crash
1 files changed, 8 insertions(+), 0 deletions(-)

M src/scopes.cpp
M src/scopes.cpp +8 -0
@@ 4046,11 4046,19 @@ struct ExceptionPad {
     }
 };
 
+#ifdef SCOPES_WIN32
+#define SCOPES_TRY() \
+    ExceptionPad exc_pad; \
+    ExceptionPad *_last_exc_pad = _exc_pad; \
+    _exc_pad = &exc_pad; \
+    if (!_setjmpex(exc_pad.retaddr, nullptr)) {
+#else
 #define SCOPES_TRY() \
     ExceptionPad exc_pad; \
     ExceptionPad *_last_exc_pad = _exc_pad; \
     _exc_pad = &exc_pad; \
     if (!setjmp(exc_pad.retaddr)) {
+#endif
 
 #define SCOPES_CATCH(EXCNAME) \
         _exc_pad = _last_exc_pad; \