summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2014-03-30 16:11:43 +0200
committerBram Moolenaar <Bram@vim.org>2014-03-30 16:11:43 +0200
commit922a4664fe51662a24097b8e74e5f716beef12f4 (patch)
tree50014c90eafda31e97acc98fe6e750570f70c391
parent498af70e066c66b66f1737b553287c1339846842 (diff)
downloadvim-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.h4
-rw-r--r--src/if_python.c2
-rw-r--r--src/if_python3.c20
-rw-r--r--src/version.c2
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,