pybind11/4902.patch

33 lines
1.2 KiB
Diff

From 4fb75b73c902deae5a4805bb9e4ea6451952183e Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert@physics.uu.se>
Date: Tue, 24 Oct 2023 15:59:02 +0200
Subject: [PATCH] Adapt to changed function name in Python 3.13
According to https://docs.python.org/3.13/whatsnew/3.13.html:
Add PyThreadState_GetUnchecked() function: similar to
PyThreadState_Get(), but don't kill the process with a fatal error if
it is NULL. The caller is responsible to check if the result is
NULL. Previously, the function was private and known as
_PyThreadState_UncheckedGet().
---
include/pybind11/detail/type_caster_base.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/include/pybind11/detail/type_caster_base.h b/include/pybind11/detail/type_caster_base.h
index fc5f1c88b3..68512b5bd0 100644
--- a/include/pybind11/detail/type_caster_base.h
+++ b/include/pybind11/detail/type_caster_base.h
@@ -486,8 +486,10 @@ PYBIND11_NOINLINE handle get_object_handle(const void *ptr, const detail::type_i
inline PyThreadState *get_thread_state_unchecked() {
#if defined(PYPY_VERSION)
return PyThreadState_GET();
-#else
+#elif PY_VERSION_HEX < 0x030D0000
return _PyThreadState_UncheckedGet();
+#else
+ return PyThreadState_GetUnchecked();
#endif
}