Skip to content

Commit e06b2ae

Browse files
ychinyegappan
authored andcommitted
patch 9.1.1251: if_python: build error with tuples and dynamic python
Problem: if_python: build error with tuples and dynamic python (after v9.1.1239) Solution: Fix build error and test failures (Yee Cheng Cin) closes: #16992 Co-authored-by: Yegappan Lakshmanan <[email protected]> Signed-off-by: Yee Cheng Chin <[email protected]> Signed-off-by: Yegappan Lakshmanan <[email protected]> Signed-off-by: Christian Brabandt <[email protected]>
1 parent 88d7593 commit e06b2ae

4 files changed

Lines changed: 11 additions & 14 deletions

File tree

src/if_py_both.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,12 +1097,6 @@ VimToPython(typval_T *our_tv, int depth, PyObject *lookup_dict)
10971097
if (ret == NULL)
10981098
return NULL;
10991099

1100-
if (PyDict_SetItemString(lookup_dict, ptrBuf, ret))
1101-
{
1102-
Py_DECREF(ret);
1103-
return NULL;
1104-
}
1105-
11061100
for (int idx = 0; idx < len; idx++)
11071101
{
11081102
typval_T *item_tv = TUPLE_ITEM(tuple, idx);
@@ -1113,7 +1107,13 @@ VimToPython(typval_T *our_tv, int depth, PyObject *lookup_dict)
11131107
Py_DECREF(ret);
11141108
return NULL;
11151109
}
1116-
PyTuple_SET_ITEM(ret, idx, newObj);
1110+
PyTuple_SetItem(ret, idx, newObj);
1111+
}
1112+
1113+
if (PyDict_SetItemString(lookup_dict, ptrBuf, ret))
1114+
{
1115+
Py_DECREF(ret);
1116+
return NULL;
11171117
}
11181118
}
11191119
else if (our_tv->v_type == VAR_DICT)
@@ -3440,7 +3440,7 @@ TupleSlice(
34403440
return NULL;
34413441
}
34423442

3443-
PyTuple_SET_ITEM(tuple, i, item);
3443+
PyTuple_SetItem(tuple, i, item);
34443444
}
34453445

34463446
return tuple;

src/if_python.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ struct PyMethodDef { Py_ssize_t a; };
202202
# define PyList_Size dll_PyList_Size
203203
# define PyList_Type (*dll_PyList_Type)
204204
# define PyTuple_GetItem dll_PyTuple_GetItem
205+
# define PyTuple_SetItem dll_PyTuple_SetItem
205206
# define PyTuple_New dll_PyTuple_New
206207
# define PyTuple_Size dll_PyTuple_Size
207208
# define PyTuple_Type (*dll_PyTuple_Type)
@@ -358,7 +359,6 @@ static PyInt(*dll_PyList_Size)(PyObject *);
358359
static PyTypeObject* dll_PyList_Type;
359360
static PyObject*(*dll_PyTuple_GetItem)(PyObject *, PyInt);
360361
static int(*dll_PyTuple_SetItem)(PyObject *, PyInt, PyObject *);
361-
static int(*dll_PyTuple_SET_ITEM)(PyObject *, PyInt, PyObject *);
362362
static PyObject*(*dll_PyTuple_New)(PyInt size);
363363
static PyInt(*dll_PyTuple_Size)(PyObject *);
364364
static PyTypeObject* dll_PyTuple_Type;
@@ -549,7 +549,6 @@ static struct
549549
{"PyList_Type", (PYTHON_PROC*)&dll_PyList_Type},
550550
{"PyTuple_GetItem", (PYTHON_PROC*)&dll_PyTuple_GetItem},
551551
{"PyTuple_SetItem", (PYTHON_PROC*)&dll_PyTuple_SetItem},
552-
{"PyTuple_SET_ITEM", (PYTHON_PROC*)&dll_PyTuple_SET_ITEM},
553552
{"PyTuple_New", (PYTHON_PROC*)&dll_PyTuple_New},
554553
{"PyTuple_Size", (PYTHON_PROC*)&dll_PyTuple_Size},
555554
{"PyTuple_Type", (PYTHON_PROC*)&dll_PyTuple_Type},

src/if_python3.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,6 @@ static HINSTANCE hinstPy3 = 0; // Instance of python.dll
190190
# define PyTuple_New py3_PyTuple_New
191191
# define PyTuple_GetItem py3_PyTuple_GetItem
192192
# define PyTuple_SetItem py3_PyTuple_SetItem
193-
# undef PyTuple_SET_ITEM
194-
# define PyTuple_SET_ITEM py3_PyTuple_SET_ITEM
195193
# define PyTuple_Size py3_PyTuple_Size
196194
# define PySequence_Check py3_PySequence_Check
197195
# define PySequence_Size py3_PySequence_Size
@@ -377,7 +375,6 @@ static int (*py3_PyList_Insert)(PyObject *, int, PyObject *);
377375
static Py_ssize_t (*py3_PyList_Size)(PyObject *);
378376
static PyObject* (*py3_PyTuple_New)(Py_ssize_t size);
379377
static int (*py3_PyTuple_SetItem)(PyObject *, Py_ssize_t, PyObject *);
380-
static int (*py3_PyTuple_SET_ITEM)(PyObject *, Py_ssize_t, PyObject *);
381378
static Py_ssize_t (*py3_PyTuple_Size)(PyObject *);
382379
static int (*py3_PySequence_Check)(PyObject *);
383380
static Py_ssize_t (*py3_PySequence_Size)(PyObject *);
@@ -595,7 +592,6 @@ static struct
595592
{"PyTuple_New", (PYTHON_PROC*)&py3_PyTuple_New},
596593
{"PyTuple_GetItem", (PYTHON_PROC*)&py3_PyTuple_GetItem},
597594
{"PyTuple_SetItem", (PYTHON_PROC*)&py3_PyTuple_SetItem},
598-
{"PyTuple_SET_ITEM", (PYTHON_PROC*)&py3_PyTuple_SET_ITEM},
599595
{"PyTuple_Size", (PYTHON_PROC*)&py3_PyTuple_Size},
600596
{"PySequence_Check", (PYTHON_PROC*)&py3_PySequence_Check},
601597
{"PySequence_Size", (PYTHON_PROC*)&py3_PySequence_Size},

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,8 @@ static char *(features[]) =
704704

705705
static int included_patches[] =
706706
{ /* Add new patch number below this line */
707+
/**/
708+
1251,
707709
/**/
708710
1250,
709711
/**/

0 commit comments

Comments
 (0)