Mercurial > vim
changeset 24916:275a8ced3ba2 v8.2.2995
patch 8.2.2995: linker errors with dynamic Python 3.10
Commit: https://github.com/vim/vim/commit/90478f35a8c78e2e10a4b4a8f135998dc04c91fa
Author: Zdenek Dohnal <zdohnal@redhat.com>
Date: Mon Jun 14 15:08:30 2021 +0200
patch 8.2.2995: linker errors with dynamic Python 3.10
Problem: Linker errors with dynamic Python 3.10.
Solution: Add a couple of library entries. (Zdenek Dohnal, closes https://github.com/vim/vim/issues/8381,
closes #8356)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 14 Jun 2021 15:15:04 +0200 |
parents | f98e6cded15f |
children | 71d44d317212 |
files | src/if_python3.c src/version.c |
diffstat | 2 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/if_python3.c +++ b/src/if_python3.c @@ -184,6 +184,9 @@ typedef PySliceObject PySliceObject_T; # ifndef PyMapping_Keys # define PyMapping_Keys py3_PyMapping_Keys # endif +# if PY_VERSION_HEX >= 0x030a00b2 +# define PyIter_Check py3_PyIter_Check +# endif # define PyIter_Next py3_PyIter_Next # define PyObject_GetIter py3_PyObject_GetIter # define PyObject_Repr py3_PyObject_Repr @@ -358,6 +361,9 @@ static PyObject* (*py3_PyDict_GetItemStr static int (*py3_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **); static PyObject* (*py3_PyLong_FromLong)(long); static PyObject* (*py3_PyDict_New)(void); +# if PY_VERSION_HEX >= 0x030a00b2 +static int (*py3_PyIter_Check)(PyObject *o); +# endif static PyObject* (*py3_PyIter_Next)(PyObject *); static PyObject* (*py3_PyObject_GetIter)(PyObject *); static PyObject* (*py3_PyObject_Repr)(PyObject *); @@ -538,6 +544,9 @@ static struct {"PyDict_Next", (PYTHON_PROC*)&py3_PyDict_Next}, {"PyMapping_Check", (PYTHON_PROC*)&py3_PyMapping_Check}, {"PyMapping_Keys", (PYTHON_PROC*)&py3_PyMapping_Keys}, +# if PY_VERSION_HEX >= 0x030a00b2 + {"PyIter_Check", (PYTHON_PROC*)&py3_PyIter_Check}, +# endif {"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next}, {"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter}, {"PyObject_Repr", (PYTHON_PROC*)&py3_PyObject_Repr}, @@ -671,6 +680,15 @@ py3_PyType_HasFeature(PyTypeObject *type # define PyType_HasFeature(t,f) py3_PyType_HasFeature(t,f) # endif +# if PY_VERSION_HEX >= 0x030a00b2 + static inline int +py3__PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) +{ + return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type); +} +# define _PyObject_TypeCheck(o,t) py3__PyObject_TypeCheck(o,t) +# endif + # ifdef MSWIN /* * Look up the library "libname" using the InstallPath registry key.