summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/ctypes/test/test_win32.py14
-rw-r--r--Modules/_ctypes/callproc.c14
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},