# HG changeset patch # User Bram Moolenaar # Date 1341056074 -7200 # Node ID 2d107086903af80afee524549e57d3ba016b3f12 # Parent d4d12df80e4fa70406648e8b36b4f296b83b1496 updated for version 7.3.584 Problem: PyCObject is not always defined. Solution: Use PyObject instead. diff --git a/src/if_py_both.h b/src/if_py_both.h --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -2432,32 +2432,25 @@ typedef int (*pytotvfunc)(PyObject *, ty convert_dl(PyObject *obj, typval_T *tv, pytotvfunc py_to_tv, PyObject *lookupDict) { -# ifdef PY_USE_CAPSULE PyObject *capsule; -# else - PyCObject *cobject; -# endif char hexBuf[sizeof(void *) * 2 + 3]; sprintf(hexBuf, "%p", obj); # ifdef PY_USE_CAPSULE capsule = PyDict_GetItemString(lookupDict, hexBuf); +# else + capsule = (PyObject *)PyDict_GetItemString(lookupDict, hexBuf); +# endif if (capsule == NULL) -# else - cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf); - if (cobject == NULL) -# endif { # ifdef PY_USE_CAPSULE capsule = PyCapsule_New(tv, NULL, NULL); +# else + capsule = PyCObject_FromVoidPtr(tv, NULL); +# endif PyDict_SetItemString(lookupDict, hexBuf, capsule); Py_DECREF(capsule); -# else - cobject = PyCObject_FromVoidPtr(tv, NULL); - PyDict_SetItemString(lookupDict, hexBuf, cobject); - Py_DECREF(cobject); -# endif if (py_to_tv(obj, tv, lookupDict) == -1) { tv->v_type = VAR_UNKNOWN; @@ -2478,7 +2471,7 @@ convert_dl(PyObject *obj, typval_T *tv, # ifdef PY_USE_CAPSULE v = PyCapsule_GetPointer(capsule, NULL); # else - v = PyCObject_AsVoidPtr(cobject); + v = PyCObject_AsVoidPtr(capsule); # endif copy_tv(v, tv); } diff --git a/src/if_python.c b/src/if_python.c --- a/src/if_python.c +++ b/src/if_python.c @@ -327,8 +327,8 @@ static void (*dll_PyObject_Free)(void*); static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor); static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *); # else -static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *)); -static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *); +static PyObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *)); +static void* (*dll_PyCObject_AsVoidPtr)(PyObject *); # endif static HINSTANCE hinstPython = 0; /* Instance of python.dll */ diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 584, +/**/ 583, /**/ 582,