forked from aniani/vim
patch 9.1.0724: if_python: link error with python 3.13 and stable ABI
Problem: if_python: link error with python 3.13 and stable ABI (zdohnal) Solution: Use the correct stable APIs Py_IncRef and Py_DecRef instead (Yee Cheng Chin) This fixes #15460 properly. There was an attempt to fix it in v9.1.0668, but it did it by manually copy and pasting definitions from Python 3.13 headers, which is problematic as it makes Vim dependent on low-level implementation details which are subject to change. That change also pulls in dependencies to private APIs (`_Py_IncRef`) which is a very bad idea as the next version of Python could very well remove that. The core issue was simply that `Py_INCREF` and similar functions are not part of the stable API. We are supposed to be using `Py_IncRef` instead which performs null-check (similar to `Py_XINCREF`) and is available as a linkable function. We simply need to call it instead of the macro. We simply remap `Py_INCREF` (and friends) to the function version in stable API similar to how we mapped other functions. related #15460 closes: #15648 Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
97a5be4687
commit
c2285a8cf3
@@ -704,6 +704,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
724,
|
||||
/**/
|
||||
723,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user