mirror of https://github.com/python/cpython
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:
parent
c65218e1fd
commit
4edc5eb639
|
@ -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");
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Reference in New Issue