From: Zdenek Dohnal Date: Thu, 19 Jun 2025 17:35:32 +0000 (+0200) Subject: patch 9.1.1472: if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed X-Git-Tag: v9.1.1472^0 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c50f4d07c4424019a8f1e5a0b20bb1c29605a361;p=thirdparty%2Fvim.git 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 --- 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, /**/