]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-135755: Move `PyFunction_GET_BUILTINS` to the private API (GH-135938)
authorPeter Bierma <zintensitydev@gmail.com>
Thu, 26 Jun 2025 09:43:08 +0000 (05:43 -0400)
committerGitHub <noreply@github.com>
Thu, 26 Jun 2025 09:43:08 +0000 (11:43 +0200)
Include/cpython/funcobject.h
Include/internal/pycore_function.h
Modules/_testinternalcapi.c
Objects/funcobject.c

index 18249b95befe65c510f3c1cdb067a7cff728a342..598cd330bc9ca958a50a4ebc6ea09892d4a693d6 100644 (file)
@@ -97,11 +97,6 @@ static inline PyObject* PyFunction_GET_GLOBALS(PyObject *func) {
 }
 #define PyFunction_GET_GLOBALS(func) PyFunction_GET_GLOBALS(_PyObject_CAST(func))
 
-static inline PyObject* PyFunction_GET_BUILTINS(PyObject *func) {
-    return _PyFunction_CAST(func)->func_builtins;
-}
-#define PyFunction_GET_BUILTINS(func) PyFunction_GET_BUILTINS(_PyObject_CAST(func))
-
 static inline PyObject* PyFunction_GET_MODULE(PyObject *func) {
     return _PyFunction_CAST(func)->func_module;
 }
index a30d52d49bdc4dd2000f1c720c8103c676654680..6e1209659565a36daa39ba73a3ca5df7c69ae633 100644 (file)
@@ -41,6 +41,11 @@ extern PyObject *_Py_set_function_type_params(
 PyAPI_FUNC(int)
 _PyFunction_VerifyStateless(PyThreadState *, PyObject *);
 
+static inline PyObject* _PyFunction_GET_BUILTINS(PyObject *func) {
+    return _PyFunction_CAST(func)->func_builtins;
+}
+#define _PyFunction_GET_BUILTINS(func) _PyFunction_GET_BUILTINS(_PyObject_CAST(func))
+
 
 #ifdef __cplusplus
 }
index 804cb4e4d1c8eecf9a4efbf2d3dc70c89624966b..fdf22a0c994d3a15fa73f75b977d48a96057e247 100644 (file)
@@ -21,6 +21,7 @@
 #include "pycore_fileutils.h"     // _Py_normpath()
 #include "pycore_flowgraph.h"     // _PyCompile_OptimizeCfg()
 #include "pycore_frame.h"         // _PyInterpreterFrame
+#include "pycore_function.h"      // _PyFunction_GET_BUILTINS
 #include "pycore_gc.h"            // PyGC_Head
 #include "pycore_hashtable.h"     // _Py_hashtable_new()
 #include "pycore_import.h"        // _PyImport_ClearExtension()
@@ -1022,7 +1023,7 @@ get_code_var_counts(PyObject *self, PyObject *_args, PyObject *_kwargs)
             globalsns = PyFunction_GET_GLOBALS(codearg);
         }
         if (builtinsns == NULL) {
-            builtinsns = PyFunction_GET_BUILTINS(codearg);
+            builtinsns = _PyFunction_GET_BUILTINS(codearg);
         }
         codearg = PyFunction_GET_CODE(codearg);
     }
@@ -1190,7 +1191,7 @@ verify_stateless_code(PyObject *self, PyObject *args, PyObject *kwargs)
             globalsns = PyFunction_GET_GLOBALS(codearg);
         }
         if (builtinsns == NULL) {
-            builtinsns = PyFunction_GET_BUILTINS(codearg);
+            builtinsns = _PyFunction_GET_BUILTINS(codearg);
         }
         codearg = PyFunction_GET_CODE(codearg);
     }
index f87b0e5d8f1e47f4e3e61f1d399ddc16f79ee181..f8dd10a346d61387dae8675149522ebea124d755 100644 (file)
@@ -1256,7 +1256,7 @@ _PyFunction_VerifyStateless(PyThreadState *tstate, PyObject *func)
         return -1;
     }
     // Check the builtins.
-    PyObject *builtinsns = PyFunction_GET_BUILTINS(func);
+    PyObject *builtinsns = _PyFunction_GET_BUILTINS(func);
     if (builtinsns != NULL && !PyDict_Check(builtinsns)) {
         _PyErr_Format(tstate, PyExc_TypeError,
                       "unsupported builtins %R", builtinsns);