From 4edc5eb6396fb962ed0827df5ab24cb3b8a7598f Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Wed, 20 Jun 2001 21:20:22 +0000 Subject: [PATCH] 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. --- Mac/Modules/win/Winmodule.c | 15 ++++----------- Mac/Modules/win/winsupport.py | 15 ++++----------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/Mac/Modules/win/Winmodule.c b/Mac/Modules/win/Winmodule.c index 639844a8bed..d8072513c20 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 92d1f47d638..cc1c312fa77 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()