diff options
-rw-r--r-- | Lib/ctypes/test/test_win32.py | 14 | ||||
-rw-r--r-- | Modules/_ctypes/callproc.c | 14 |
2 files changed, 9 insertions, 19 deletions
diff --git a/Lib/ctypes/test/test_win32.py b/Lib/ctypes/test/test_win32.py index eb016ff..8247d37 100644 --- a/Lib/ctypes/test/test_win32.py +++ b/Lib/ctypes/test/test_win32.py @@ -30,11 +30,15 @@ if sys.platform == "win32": # or wrong calling convention self.assertRaises(ValueError, IsWindow, None) - import _ctypes - if _ctypes.uses_seh(): - def test_SEH(self): - # Call functions with invalid arguments, and make sure that access violations - # are trapped and raise an exception. + def test_SEH(self): + # Call functions with invalid arguments, and make sure that access violations + # are trapped and raise an exception. + # + # Normally, in a debug build of the _ctypes extension + # module, exceptions are not trapped, so we can only run + # this test in a release build. + import sys + if not hasattr(sys, "getobjects"): self.assertRaises(WindowsError, windll.kernel32.GetModuleHandleA, 32) class Structures(unittest.TestCase): diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 4ec1f13..16e10de 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -1526,21 +1526,7 @@ resize(PyObject *self, PyObject *args) return Py_None; } -static PyObject * -uses_seh(PyObject *self, PyObject *args) -{ -#if defined(DONT_USE_SEH) || !defined(MS_WIN32) - Py_INCREF(Py_False); - return Py_False; -#else - Py_INCREF(Py_True); - return Py_True; -#endif -} - PyMethodDef module_methods[] = { - {"uses_seh", uses_seh, METH_NOARGS, - "Return whether ctypes uses Windows structured exception handling"}, {"resize", resize, METH_VARARGS, "Resize the memory buffer of a ctypes instance"}, #ifdef CTYPES_UNICODE {"set_conversion_mode", set_conversion_mode, METH_VARARGS, set_conversion_mode_doc}, |