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 */
--- 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,