From c50f4d07c4424019a8f1e5a0b20bb1c29605a361 Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 19 Jun 2025 19:35:32 +0200 Subject: [PATCH] patch 9.1.1472: if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed Problem: if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed with python3.14 in stable ABI Solution: use PySequence_{Size,GetItem} instead (Zdenek Dohnal) Python 3.14 removed those two functions from stable API because of reasoning these function shouldn't be part of stable API at the first place. Moving to PySequence_GetSize and PySequence_GetItem fixes the build failure when Vim is built with dynamic Python and stable API for Python 3.8. closes: #17575 Signed-off-by: Zdenek Dohnal Signed-off-by: Christian Brabandt --- src/if_py_both.h | 8 ++++---- src/version.c | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/if_py_both.h b/src/if_py_both.h index ed66254ff3..7fc055db53 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -2409,18 +2409,18 @@ DictionaryUpdate(DictionaryObject *self, PyObject *args, PyObject *kwargs) Py_DECREF(item); - if (PySequence_Fast_GET_SIZE(fast) != 2) + if (PySequence_Size(fast) != 2) { Py_DECREF(iterator); Py_DECREF(fast); PyErr_FORMAT(PyExc_ValueError, N_("expected sequence element of size 2, " "but got sequence of size %d"), - (int) PySequence_Fast_GET_SIZE(fast)); + (int) PySequence_Size(fast)); return NULL; } - keyObject = PySequence_Fast_GET_ITEM(fast, 0); + keyObject = PySequence_GetItem(fast, 0); if (!(key = StringToChars(keyObject, &todecref))) { @@ -2442,7 +2442,7 @@ DictionaryUpdate(DictionaryObject *self, PyObject *args, PyObject *kwargs) } di->di_tv.v_type = VAR_UNKNOWN; - valObject = PySequence_Fast_GET_ITEM(fast, 1); + valObject = PySequence_GetItem(fast, 1); if (ConvertFromPyObject(valObject, &di->di_tv) == -1) { diff --git a/src/version.c b/src/version.c index 52fdfc361a..e8673ed06c 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1472, /**/ 1471, /**/