- update to 228 - drop Python 2 support - fix some MAPI compilation problems - simplfy the patch file for dependencies - drop the patch file for min/max - disable some modules
87 lines
3.0 KiB
Diff
87 lines
3.0 KiB
Diff
--- 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;
|