diff options
author | Victor Stinner <vstinner@python.org> | 2022-02-25 15:07:14 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-25 15:07:14 (GMT) |
commit | 8f2a337a80a283c66e1a4252839792fa229d2763 (patch) | |
tree | 0497a8e2db3ceeb7e5a4960a38dcf2c7310bfdd1 | |
parent | 26aba295a9c1bcb0812fe44bd7e68ddd1d8a6828 (diff) | |
download | cpython-8f2a337a80a283c66e1a4252839792fa229d2763.zip cpython-8f2a337a80a283c66e1a4252839792fa229d2763.tar.gz cpython-8f2a337a80a283c66e1a4252839792fa229d2763.tar.bz2 |
bpo-45316: Move private functions to internal C API (GH-31579)
Move the unexported private functions to the internal C API:
* pycore_frame.h: _PyFrame_New_NoTrack()
* pycore_function.h: _PyFunction_GetVersionForCurrentState()
* pycore_genobject.h: _PyAsyncGenValueWrapperNew()
* pycore_genobject.h: _PyCoro_GetAwaitableIter()
* pycore_genobject.h: _PyGen_yf()
-rw-r--r-- | Include/cpython/frameobject.h | 5 | ||||
-rw-r--r-- | Include/cpython/funcobject.h | 2 | ||||
-rw-r--r-- | Include/cpython/genobject.h | 4 | ||||
-rw-r--r-- | Include/internal/pycore_frame.h | 2 | ||||
-rw-r--r-- | Include/internal/pycore_function.h | 15 | ||||
-rw-r--r-- | Include/internal/pycore_genobject.h | 3 | ||||
-rw-r--r-- | Python/specialize.c | 3 |
7 files changed, 18 insertions, 16 deletions
diff --git a/Include/cpython/frameobject.h b/Include/cpython/frameobject.h index e692096..ebaecbe 100644 --- a/Include/cpython/frameobject.h +++ b/Include/cpython/frameobject.h @@ -13,11 +13,6 @@ PyAPI_DATA(PyTypeObject) PyFrame_Type; PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *, PyObject *, PyObject *); -/* only internal use */ -PyFrameObject* -_PyFrame_New_NoTrack(PyCodeObject *code); - - /* The rest of the interface is specific for frame objects */ /* Conversions between "fast locals" and locals in dictionary */ diff --git a/Include/cpython/funcobject.h b/Include/cpython/funcobject.h index 9f0560f..99ac600 100644 --- a/Include/cpython/funcobject.h +++ b/Include/cpython/funcobject.h @@ -82,8 +82,6 @@ PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall( size_t nargsf, PyObject *kwnames); -uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func); - /* Macros for direct access to these values. Type checks are *not* done, so use with care. */ #define PyFunction_GET_CODE(func) \ diff --git a/Include/cpython/genobject.h b/Include/cpython/genobject.h index 838ca6c..b485ac6 100644 --- a/Include/cpython/genobject.h +++ b/Include/cpython/genobject.h @@ -45,7 +45,6 @@ PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *, PyObject *name, PyObject *qualname); PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *); PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **); -PyObject *_PyGen_yf(PyGenObject *); PyAPI_FUNC(void) _PyGen_Finalize(PyObject *self); @@ -59,7 +58,6 @@ PyAPI_DATA(PyTypeObject) PyCoro_Type; PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type; #define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type) -PyObject *_PyCoro_GetAwaitableIter(PyObject *o); PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *, PyObject *name, PyObject *qualname); @@ -80,8 +78,6 @@ PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *, #define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type) -PyObject *_PyAsyncGenValueWrapperNew(PyObject *); - #undef _PyGenObject_HEAD diff --git a/Include/internal/pycore_frame.h b/Include/internal/pycore_frame.h index 09d4122..f8b8e00 100644 --- a/Include/internal/pycore_frame.h +++ b/Include/internal/pycore_frame.h @@ -19,6 +19,8 @@ struct _frame { PyObject *_f_frame_data[1]; }; +extern PyFrameObject* _PyFrame_New_NoTrack(PyCodeObject *code); + /* runtime lifecycle */ extern void _PyFrame_Fini(PyInterpreterState *interp); diff --git a/Include/internal/pycore_function.h b/Include/internal/pycore_function.h index dc4422d..1c87aa3 100644 --- a/Include/internal/pycore_function.h +++ b/Include/internal/pycore_function.h @@ -1,11 +1,18 @@ #ifndef Py_INTERNAL_FUNCTION_H #define Py_INTERNAL_FUNCTION_H +#ifdef __cplusplus +extern "C" { +#endif +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif -#include "Python.h" - -PyFunctionObject * -_PyFunction_FromConstructor(PyFrameConstructor *constr); +extern PyFunctionObject* _PyFunction_FromConstructor(PyFrameConstructor *constr); +extern uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func); +#ifdef __cplusplus +} +#endif #endif /* !Py_INTERNAL_FUNCTION_H */ diff --git a/Include/internal/pycore_genobject.h b/Include/internal/pycore_genobject.h index 74a676d..42db0d8 100644 --- a/Include/internal/pycore_genobject.h +++ b/Include/internal/pycore_genobject.h @@ -8,6 +8,9 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +extern PyObject *_PyGen_yf(PyGenObject *); +extern PyObject *_PyCoro_GetAwaitableIter(PyObject *o); +extern PyObject *_PyAsyncGenValueWrapperNew(PyObject *); /* runtime lifecycle */ diff --git a/Python/specialize.c b/Python/specialize.c index e1db12b..1624f19 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -1,6 +1,7 @@ #include "Python.h" #include "pycore_code.h" #include "pycore_dict.h" +#include "pycore_function.h" // _PyFunction_GetVersionForCurrentState() #include "pycore_global_strings.h" // _Py_ID() #include "pycore_long.h" #include "pycore_moduleobject.h" @@ -1928,7 +1929,7 @@ void _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, int oparg) { - assert(_PyOpcode_InlineCacheEntries[BINARY_OP] == + assert(_PyOpcode_InlineCacheEntries[BINARY_OP] == INLINE_CACHE_ENTRIES_BINARY_OP); _PyBinaryOpCache *cache = (_PyBinaryOpCache *)(instr + 1); switch (oparg) { |