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.

This commit is contained in:
Jack Jansen 2001-06-20 21:20:22 +00:00
parent c65218e1fd
commit 4edc5eb639
2 changed files with 8 additions and 22 deletions

View File

@ -76,7 +76,10 @@ PyObject *WinObj_New(WindowPtr itself)
} }
WinObj_Convert(PyObject *v, WindowPtr *p_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; DialogRef dlg;
if (DlgObj_Convert(v, &dlg) && dlg) { if (DlgObj_Convert(v, &dlg) && dlg) {
@ -85,16 +88,6 @@ WinObj_Convert(PyObject *v, WindowPtr *p_itself)
} }
PyErr_Clear(); 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)) if (!WinObj_Check(v))
{ {
PyErr_SetString(PyExc_TypeError, "Window required"); PyErr_SetString(PyExc_TypeError, "Window required");

View File

@ -137,7 +137,10 @@ class MyObjectDefinition(GlobalObjectDefinition):
Output("it->ob_freeit = PyMac_AutoDisposeWindow;") Output("it->ob_freeit = PyMac_AutoDisposeWindow;")
OutRbrace() OutRbrace()
def outputCheckConvertArg(self): 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() OutLbrace()
Output("DialogRef dlg;") Output("DialogRef dlg;")
OutLbrace("if (DlgObj_Convert(v, &dlg) && dlg)") OutLbrace("if (DlgObj_Convert(v, &dlg) && dlg)")
@ -146,16 +149,6 @@ class MyObjectDefinition(GlobalObjectDefinition):
OutRbrace() OutRbrace()
Output("PyErr_Clear();") Output("PyErr_Clear();")
OutRbrace() 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): def outputCleanupStructMembers(self):
Output("if (self->ob_freeit && self->ob_itself)") Output("if (self->ob_freeit && self->ob_itself)")
OutLbrace() OutLbrace()