From: Bram Moolenaar Date: Sun, 30 Mar 2014 14:11:43 +0000 (+0200) Subject: updated for version 7.4.228 X-Git-Tag: v7.4.228 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=922a4664fe51662a24097b8e74e5f716beef12f4;p=vim updated for version 7.4.228 Problem: Compiler warnings when building with Python 3.2. Solution: Make type cast depend on Python version. (Ken Takata) --- diff --git a/src/if_py_both.h b/src/if_py_both.h index 4c9dd8b20..b26226977 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -2328,7 +2328,7 @@ ListItem(ListObject *self, PyObject* idx) { Py_ssize_t start, stop, step, slicelen; - if (PySlice_GetIndicesEx((PySliceObject *)idx, ListLength(self), + if (PySlice_GetIndicesEx((PySliceObject_T *)idx, ListLength(self), &start, &stop, &step, &slicelen) < 0) return NULL; return ListSlice(self, start, step, slicelen); @@ -2618,7 +2618,7 @@ ListAssItem(ListObject *self, PyObject *idx, PyObject *obj) { Py_ssize_t start, stop, step, slicelen; - if (PySlice_GetIndicesEx((PySliceObject *)idx, ListLength(self), + if (PySlice_GetIndicesEx((PySliceObject_T *)idx, ListLength(self), &start, &stop, &step, &slicelen) < 0) return -1; return ListAssSlice(self, start, step, slicelen, diff --git a/src/if_python.c b/src/if_python.c index 34a75a636..c95cb5d0e 100644 --- a/src/if_python.c +++ b/src/if_python.c @@ -803,6 +803,8 @@ py_memsave(void *p, size_t len) # define PY_STRSAVE(s) ((char_u *) py_memsave(s, STRLEN(s) + 1)) #endif +typedef PySliceObject PySliceObject_T; + /* * Include the code shared with if_python3.c */ diff --git a/src/if_python3.c b/src/if_python3.c index 99781fcc8..374641d82 100644 --- a/src/if_python3.c +++ b/src/if_python3.c @@ -100,6 +100,16 @@ #define PyIntArgFunc ssizeargfunc #define PyIntObjArgProc ssizeobjargproc +/* + * PySlice_GetIndicesEx(): first argument type changed from PySliceObject + * to PyObject in Python 3.2 or later. + */ +#if PY_VERSION_HEX >= 0x030200f0 +typedef PyObject PySliceObject_T; +#else +typedef PySliceObject PySliceObject_T; +#endif + #if defined(DYNAMIC_PYTHON3) || defined(PROTO) # ifndef WIN3264 @@ -294,7 +304,7 @@ static Py_ssize_t (*py3_PyTuple_Size)(PyObject *); static PyObject* (*py3_PyTuple_GetItem)(PyObject *, Py_ssize_t); static int (*py3_PyMapping_Check)(PyObject *); static PyObject* (*py3_PyMapping_Keys)(PyObject *); -static int (*py3_PySlice_GetIndicesEx)(PySliceObject *r, Py_ssize_t length, +static int (*py3_PySlice_GetIndicesEx)(PySliceObject_T *r, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelen); static PyObject* (*py3_PyErr_NoMemory)(void); @@ -1190,7 +1200,7 @@ BufferSubscript(PyObject *self, PyObject* idx) if (CheckBuffer((BufferObject *) self)) return NULL; - if (PySlice_GetIndicesEx((PySliceObject *)idx, + if (PySlice_GetIndicesEx((PySliceObject_T *)idx, (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, &start, &stop, &step, &slicelen) < 0) @@ -1222,7 +1232,7 @@ BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val) if (CheckBuffer((BufferObject *) self)) return -1; - if (PySlice_GetIndicesEx((PySliceObject *)idx, + if (PySlice_GetIndicesEx((PySliceObject_T *)idx, (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, &start, &stop, &step, &slicelen) < 0) @@ -1306,7 +1316,7 @@ RangeSubscript(PyObject *self, PyObject* idx) { Py_ssize_t start, stop, step, slicelen; - if (PySlice_GetIndicesEx((PySliceObject *)idx, + if (PySlice_GetIndicesEx((PySliceObject_T *)idx, ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1, &start, &stop, &step, &slicelen) < 0) @@ -1333,7 +1343,7 @@ RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val) { Py_ssize_t start, stop, step, slicelen; - if (PySlice_GetIndicesEx((PySliceObject *)idx, + if (PySlice_GetIndicesEx((PySliceObject_T *)idx, ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1, &start, &stop, &step, &slicelen) < 0) diff --git a/src/version.c b/src/version.c index 1fa43a1d5..1c78a5e47 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 228, /**/ 227, /**/