blob: eb0cdfdf703f9e5c9d2bca1159c27f54a321e4d4 [file] [log] [blame]
--- 000/win32/src/win32apimodule.cpp 2019-07-18 09:05:08.224088200 +0300
+++ 001/win32/src/win32apimodule.cpp 2018-09-28 09:32:03.000000000 +0300
@@ -707,7 +707,7 @@ static PyObject *PyFindCloseChangeNotification(PyObject *self, PyObject *args)
}
// @pymethod string|win32api|FormatMessage|Returns an error message from the system error file.
-static PyObject *PyFormatMessageA(PyObject *self, PyObject *args)
+__attribute__((optimize("O0"), noinline)) static PyObject *PyFormatMessageA(PyObject *self, PyObject *args)
{
int errCode = 0;
// @pyparm int|errCode|0|The error code to return the message for, If this value is 0, then GetLastError() is
@@ -795,6 +795,7 @@ static PyObject *PyFormatMessageA(PyObject *self, PyObject *args)
{
baccessviolation = TRUE;
}
+ __except_end
PyW32_END_ALLOW_THREADS
}
@@ -819,7 +818,7 @@ cleanup:
}
// @pymethod <o PyUnicode>|win32api|FormatMessageW|Returns an error message from the system error file.
-static PyObject *PyFormatMessageW(PyObject *self, PyObject *args)
+__attribute__((optimize("O0"), noinline)) static PyObject *PyFormatMessageW(PyObject *self, PyObject *args)
{
int errCode = 0;
// Accept just the error code
@@ -902,6 +913,7 @@ static PyObject *PyFormatMessageW(PyObject *self, PyObject *args)
{
baccessviolation = TRUE;
}
+ __except_end
PyW32_END_ALLOW_THREADS
}
@@ -5555,7 +5553,7 @@ static PyObject *PyApply(PyObject *self, PyObject *args)
Py_XDECREF(exc_type);
Py_XDECREF(exc_value);
ret = NULL;
- }
+ } __except_end
return ret;
// @comm Calls the specified function in a manner similar to
// the built-in function apply(), but allows Win32 exceptions
--- 000/com/win32com/src/include/PythonCOM.h 2020-06-13 08:39:03.000000000 +0300
+++ 001/com/win32com/src/include/PythonCOM.h 2020-06-20 13:10:05.609363700 +0300
@@ -111,8 +111,6 @@
#ifdef __MINGW32__
// Special Mingw32 considerations.
#define NO_PYCOM_ENUMSTATPROPSTG
-#define __try try
-#define __except catch
#include <olectl.h>
#endif // __MINGW32__
--- 000/com/win32comext/mapi/src/mapi.i 2020-06-13 08:39:03.000000000 +0300
+++ 001/com/win32comext/mapi/src/mapi.i 2020-06-20 13:10:05.609363700 +0300
@@ -129,6 +129,7 @@
PyWin_SetAPIError("MAPIUninitialize", ERROR_INVALID_HANDLE);
rc = NULL;
}
+ __except_end
return rc;
}
--- 000/com/win32comext/shell/src/shell.cpp 2020-06-13 08:39:03.000000000 +0300
+++ 001/com/win32comext/shell/src/shell.cpp 2020-06-20 14:15:11.188333200 +0300
@@ -258,16 +258,13 @@
pidl = _ILNext(pidl);
}
}
-#if defined(__MINGW32__) || defined(MAINWIN)
- catch (...)
-#else
__except (EXCEPTION_EXECUTE_HANDLER)
-#endif
{
Py_DECREF(ret);
PyErr_SetString(PyExc_ValueError, "This string is an invalid PIDL (win32 exception unpacking)");
ret = NULL;
}
+ __except_end
if (bFreeSystemPIDL)
CoTaskMemFree((void *)pidl_free);
return ret;