0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.3.584

Problem:    PyCObject is not always defined.
Solution:   Use PyObject instead.
This commit is contained in:
Bram Moolenaar 2012-06-30 13:34:34 +02:00
parent e721122b79
commit 221d6872c4
3 changed files with 10 additions and 15 deletions

View File

@ -2432,32 +2432,25 @@ typedef int (*pytotvfunc)(PyObject *, typval_T *, PyObject *);
convert_dl(PyObject *obj, typval_T *tv, convert_dl(PyObject *obj, typval_T *tv,
pytotvfunc py_to_tv, PyObject *lookupDict) pytotvfunc py_to_tv, PyObject *lookupDict)
{ {
# ifdef PY_USE_CAPSULE
PyObject *capsule; PyObject *capsule;
# else
PyCObject *cobject;
# endif
char hexBuf[sizeof(void *) * 2 + 3]; char hexBuf[sizeof(void *) * 2 + 3];
sprintf(hexBuf, "%p", obj); sprintf(hexBuf, "%p", obj);
# ifdef PY_USE_CAPSULE # ifdef PY_USE_CAPSULE
capsule = PyDict_GetItemString(lookupDict, hexBuf); capsule = PyDict_GetItemString(lookupDict, hexBuf);
if (capsule == NULL)
# else # else
cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf); capsule = (PyObject *)PyDict_GetItemString(lookupDict, hexBuf);
if (cobject == NULL)
# endif # endif
if (capsule == NULL)
{ {
# ifdef PY_USE_CAPSULE # ifdef PY_USE_CAPSULE
capsule = PyCapsule_New(tv, NULL, NULL); capsule = PyCapsule_New(tv, NULL, NULL);
# else
capsule = PyCObject_FromVoidPtr(tv, NULL);
# endif
PyDict_SetItemString(lookupDict, hexBuf, capsule); PyDict_SetItemString(lookupDict, hexBuf, capsule);
Py_DECREF(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) if (py_to_tv(obj, tv, lookupDict) == -1)
{ {
tv->v_type = VAR_UNKNOWN; tv->v_type = VAR_UNKNOWN;
@ -2478,7 +2471,7 @@ convert_dl(PyObject *obj, typval_T *tv,
# ifdef PY_USE_CAPSULE # ifdef PY_USE_CAPSULE
v = PyCapsule_GetPointer(capsule, NULL); v = PyCapsule_GetPointer(capsule, NULL);
# else # else
v = PyCObject_AsVoidPtr(cobject); v = PyCObject_AsVoidPtr(capsule);
# endif # endif
copy_tv(v, tv); copy_tv(v, tv);
} }

View File

@ -327,8 +327,8 @@ static void (*dll_PyObject_Free)(void*);
static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor); static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *); static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
# else # else
static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *)); static PyObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *); static void* (*dll_PyCObject_AsVoidPtr)(PyObject *);
# endif # endif
static HINSTANCE hinstPython = 0; /* Instance of python.dll */ static HINSTANCE hinstPython = 0; /* Instance of python.dll */

View File

@ -714,6 +714,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
584,
/**/ /**/
583, 583,
/**/ /**/