Mercurial > vim
diff src/if_py_both.h @ 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 | f02b6ad168ae |
children | e13f2f3568e1 |
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); }