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 /src/if_python3.c | |
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)
Diffstat (limited to 'src/if_python3.c')
-rw-r--r-- | src/if_python3.c | 20 |
1 files changed, 15 insertions, 5 deletions
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) |