]> granicus.if.org Git - python/commitdiff
Revert the change done in svn revision 47206:
authorThomas Heller <theller@ctypes.org>
Thu, 6 Jul 2006 07:50:18 +0000 (07:50 +0000)
committerThomas Heller <theller@ctypes.org>
Thu, 6 Jul 2006 07:50:18 +0000 (07:50 +0000)
Add a new function uses_seh() to the _ctypes extension module.  This
will return True if Windows Structured Exception handling (SEH) is
used when calling functions, False otherwise.

Lib/ctypes/test/test_win32.py
Modules/_ctypes/callproc.c

index eb016ffbc7d0e82421e4fa70b9abbca1612592b8..8247d370d39b2198a3a47aa59b5dff39dc0cbaac 100644 (file)
@@ -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):
index 4ec1f13d80988d6958618da754f9b21a1e3a9a5a..16e10dedad2e6635b7064e462dc7927fffb2f985 100644 (file)
@@ -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},