summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-06-20 21:20:22 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-06-20 21:20:22 (GMT)
commit4edc5eb6396fb962ed0827df5ab24cb3b8a7598f (patch)
tree492f5e0838a21b0ad100432007ce73454150ef59
parentc65218e1fd084f486b4ce87419e0f18146f2b1a1 (diff)
downloadcpython-4edc5eb6396fb962ed0827df5ab24cb3b8a7598f.zip
cpython-4edc5eb6396fb962ed0827df5ab24cb3b8a7598f.tar.gz
cpython-4edc5eb6396fb962ed0827df5ab24cb3b8a7598f.tar.bz2
Reversed the order of the checks for None or a Dialog where a Window is expected so it doesn't crash under OSX/Mach-o.
-rw-r--r--Mac/Modules/win/Winmodule.c15
-rw-r--r--Mac/Modules/win/winsupport.py15
2 files changed, 8 insertions, 22 deletions
diff --git a/Mac/Modules/win/Winmodule.c b/Mac/Modules/win/Winmodule.c
index 639844a..d807251 100644
--- a/Mac/Modules/win/Winmodule.c
+++ b/Mac/Modules/win/Winmodule.c
@@ -76,7 +76,10 @@ PyObject *WinObj_New(WindowPtr itself)
}
WinObj_Convert(PyObject *v, WindowPtr *p_itself)
{
-#if 1
+
+ if (v == Py_None) { *p_itself = NULL; return 1; }
+ if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
+
{
DialogRef dlg;
if (DlgObj_Convert(v, &dlg) && dlg) {
@@ -85,16 +88,6 @@ WinObj_Convert(PyObject *v, WindowPtr *p_itself)
}
PyErr_Clear();
}
-#else
- if (DlgObj_Check(v)) {
- *p_itself = DlgObj_ConvertToWindow(v);
- return 1;
- }
-#endif
-
- if (v == Py_None) { *p_itself = NULL; return 1; }
- if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
-
if (!WinObj_Check(v))
{
PyErr_SetString(PyExc_TypeError, "Window required");
diff --git a/Mac/Modules/win/winsupport.py b/Mac/Modules/win/winsupport.py
index 92d1f47..cc1c312 100644
--- a/Mac/Modules/win/winsupport.py
+++ b/Mac/Modules/win/winsupport.py
@@ -137,7 +137,10 @@ class MyObjectDefinition(GlobalObjectDefinition):
Output("it->ob_freeit = PyMac_AutoDisposeWindow;")
OutRbrace()
def outputCheckConvertArg(self):
- Output("#if 1")
+ Out("""
+ if (v == Py_None) { *p_itself = NULL; return 1; }
+ if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
+ """)
OutLbrace()
Output("DialogRef dlg;")
OutLbrace("if (DlgObj_Convert(v, &dlg) && dlg)")
@@ -146,16 +149,6 @@ class MyObjectDefinition(GlobalObjectDefinition):
OutRbrace()
Output("PyErr_Clear();")
OutRbrace()
- Output("#else")
- OutLbrace("if (DlgObj_Check(v))")
- Output("*p_itself = DlgObj_ConvertToWindow(v);")
- Output("return 1;")
- OutRbrace()
- Output("#endif")
- Out("""
- if (v == Py_None) { *p_itself = NULL; return 1; }
- if (PyInt_Check(v)) { *p_itself = (WindowPtr)PyInt_AsLong(v); return 1; }
- """)
def outputCleanupStructMembers(self):
Output("if (self->ob_freeit && self->ob_itself)")
OutLbrace()