diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-03-30 16:11:43 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-03-30 16:11:43 +0200 |
commit | 922a4664fe51662a24097b8e74e5f716beef12f4 (patch) | |
tree | 50014c90eafda31e97acc98fe6e750570f70c391 | |
parent | 498af70e066c66b66f1737b553287c1339846842 (diff) | |
download | vim-git-922a4664fe51662a24097b8e74e5f716beef12f4.tar.gz |
updated for version 7.4.228v7.4.228
Problem: Compiler warnings when building with Python 3.2.
Solution: Make type cast depend on Python version. (Ken Takata)
-rw-r--r-- | src/if_py_both.h | 4 | ||||
-rw-r--r-- | src/if_python.c | 2 | ||||
-rw-r--r-- | src/if_python3.c | 20 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 21 insertions, 7 deletions
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 @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 228, +/**/ 227, /**/ 226, |