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)
{
#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");

View File

@ -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()