Mercurial > vim
changeset 3648:2d107086903a v7.3.584
updated for version 7.3.584
Problem: PyCObject is not always defined.
Solution: Use PyObject instead.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sat, 30 Jun 2012 13:34:34 +0200 |
parents | d4d12df80e4f |
children | 8af0aad3d4eb |
files | src/if_py_both.h src/if_python.c src/version.c |
diffstat | 3 files changed, 11 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- 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); }
--- 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 */