diff --git a/Mac/Modules/qd/_Qdmodule.c b/Mac/Modules/qd/_Qdmodule.c index 3bbe2c3cfc4..d66fcf2bdc2 100644 --- a/Mac/Modules/qd/_Qdmodule.c +++ b/Mac/Modules/qd/_Qdmodule.c @@ -122,7 +122,7 @@ PyObject *QdRGB_New(RGBColorPtr itself) return Py_BuildValue("lll", (long)itself->red, (long)itself->green, (long)itself->blue); } -QdRGB_Convert(PyObject *v, RGBColorPtr p_itself) +int QdRGB_Convert(PyObject *v, RGBColorPtr p_itself) { long red, green, blue; diff --git a/Mac/Modules/qd/qdsupport.py b/Mac/Modules/qd/qdsupport.py index 9c177b6b09a..0c969d71b1f 100644 --- a/Mac/Modules/qd/qdsupport.py +++ b/Mac/Modules/qd/qdsupport.py @@ -167,7 +167,7 @@ PyObject *QdRGB_New(RGBColorPtr itself) return Py_BuildValue("lll", (long)itself->red, (long)itself->green, (long)itself->blue); } -QdRGB_Convert(PyObject *v, RGBColorPtr p_itself) +int QdRGB_Convert(PyObject *v, RGBColorPtr p_itself) { long red, green, blue; diff --git a/Mac/Modules/res/_Resmodule.c b/Mac/Modules/res/_Resmodule.c index 775e668c64b..8640f5a8982 100644 --- a/Mac/Modules/res/_Resmodule.c +++ b/Mac/Modules/res/_Resmodule.c @@ -440,7 +440,8 @@ static PyObject *ResObj_AutoDispose(ResourceObject *_self, PyObject *_args) _self->ob_freeit = PyMac_AutoDisposeHandle; else _self->ob_freeit = NULL; - return Py_BuildValue("i", old); + _res = Py_BuildValue("i", old); + return _res; } @@ -1378,7 +1379,8 @@ static PyObject *Res_Resource(PyObject *_self, PyObject *_args) HLock(h); memcpy(*h, buf, len); HUnlock(h); - return ResObj_New(h); + _res = ResObj_New(h); + return _res; } @@ -1403,7 +1405,8 @@ static PyObject *Res_Handle(PyObject *_self, PyObject *_args) HUnlock(h); rv = (ResourceObject *)ResObj_New(h); rv->ob_freeit = PyMac_AutoDisposeHandle; - return (PyObject *)rv; + _res = (PyObject *)rv; + return _res; } diff --git a/Mac/Modules/res/resedit.py b/Mac/Modules/res/resedit.py index fce0bd11a71..c66c0c8eff8 100644 --- a/Mac/Modules/res/resedit.py +++ b/Mac/Modules/res/resedit.py @@ -13,7 +13,8 @@ if ( h == NULL ) { HLock(h); memcpy(*h, buf, len); HUnlock(h); -return ResObj_New(h); +_res = ResObj_New(h); +return _res; """ f = ManualGenerator("Resource", resource_body) @@ -43,7 +44,8 @@ memcpy(*h, buf, len); HUnlock(h); rv = (ResourceObject *)ResObj_New(h); rv->ob_freeit = PyMac_AutoDisposeHandle; -return (PyObject *)rv; +_res = (PyObject *)rv; +return _res; """ f = ManualGenerator("Handle", handle_body) @@ -92,7 +94,8 @@ if ( onoff ) _self->ob_freeit = PyMac_AutoDisposeHandle; else _self->ob_freeit = NULL; -return Py_BuildValue("i", old); +_res = Py_BuildValue("i", old); +return _res; """ f = ManualGenerator("AutoDispose", AutoDispose_body) f.docstring = lambda: "(int)->int. Automatically DisposeHandle the object on Python object cleanup" diff --git a/Mac/Modules/waste/wastemodule.c b/Mac/Modules/waste/wastemodule.c index d09641f5144..2c28310f7c3 100644 --- a/Mac/Modules/waste/wastemodule.c +++ b/Mac/Modules/waste/wastemodule.c @@ -5,8 +5,20 @@ +#ifdef _WIN32 +#include "pywintoolbox.h" +#else #include "macglue.h" #include "pymactoolbox.h" +#endif + +/* Macro to test whether a weak-loaded CFM function exists */ +#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ + PyErr_SetString(PyExc_NotImplementedError, \ + "Not available in this shared library/OS version"); \ + return NULL; \ + }} while(0) + #include #include @@ -213,7 +225,7 @@ PyObject *WEOObj_New(WEObjectReference itself) it->ob_itself = itself; return (PyObject *)it; } -WEOObj_Convert(PyObject *v, WEObjectReference *p_itself) +int WEOObj_Convert(PyObject *v, WEObjectReference *p_itself) { if (!WEOObj_Check(v)) { @@ -381,7 +393,7 @@ PyObject *wasteObj_New(WEReference itself) WESetInfo(weRefCon, (void *)&it, itself); return (PyObject *)it; } -wasteObj_Convert(PyObject *v, WEReference *p_itself) +int wasteObj_Convert(PyObject *v, WEReference *p_itself) { if (!wasteObj_Check(v)) { @@ -1061,7 +1073,6 @@ static PyObject *wasteObj_WEInsert(wasteObject *_self, PyObject *_args) if (_err != noErr) return PyMac_Error(_err); Py_INCREF(Py_None); _res = Py_None; - pText__error__: ; return _res; }