mirror of
https://github.com/python/cpython
synced 2024-09-16 02:49:57 +00:00
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()
This commit is contained in:
parent
26aba295a9
commit
8f2a337a80
|
@ -13,11 +13,6 @@ PyAPI_DATA(PyTypeObject) PyFrame_Type;
|
||||||
PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
|
PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
|
||||||
PyObject *, PyObject *);
|
PyObject *, PyObject *);
|
||||||
|
|
||||||
/* only internal use */
|
|
||||||
PyFrameObject*
|
|
||||||
_PyFrame_New_NoTrack(PyCodeObject *code);
|
|
||||||
|
|
||||||
|
|
||||||
/* The rest of the interface is specific for frame objects */
|
/* The rest of the interface is specific for frame objects */
|
||||||
|
|
||||||
/* Conversions between "fast locals" and locals in dictionary */
|
/* Conversions between "fast locals" and locals in dictionary */
|
||||||
|
|
|
@ -82,8 +82,6 @@ PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall(
|
||||||
size_t nargsf,
|
size_t nargsf,
|
||||||
PyObject *kwnames);
|
PyObject *kwnames);
|
||||||
|
|
||||||
uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func);
|
|
||||||
|
|
||||||
/* Macros for direct access to these values. Type checks are *not*
|
/* Macros for direct access to these values. Type checks are *not*
|
||||||
done, so use with care. */
|
done, so use with care. */
|
||||||
#define PyFunction_GET_CODE(func) \
|
#define PyFunction_GET_CODE(func) \
|
||||||
|
|
|
@ -45,7 +45,6 @@ PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *,
|
||||||
PyObject *name, PyObject *qualname);
|
PyObject *name, PyObject *qualname);
|
||||||
PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *);
|
PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *);
|
||||||
PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **);
|
PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **);
|
||||||
PyObject *_PyGen_yf(PyGenObject *);
|
|
||||||
PyAPI_FUNC(void) _PyGen_Finalize(PyObject *self);
|
PyAPI_FUNC(void) _PyGen_Finalize(PyObject *self);
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,7 +58,6 @@ PyAPI_DATA(PyTypeObject) PyCoro_Type;
|
||||||
PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type;
|
PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type;
|
||||||
|
|
||||||
#define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type)
|
#define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type)
|
||||||
PyObject *_PyCoro_GetAwaitableIter(PyObject *o);
|
|
||||||
PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *,
|
PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *,
|
||||||
PyObject *name, PyObject *qualname);
|
PyObject *name, PyObject *qualname);
|
||||||
|
|
||||||
|
@ -80,8 +78,6 @@ PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *,
|
||||||
|
|
||||||
#define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type)
|
#define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type)
|
||||||
|
|
||||||
PyObject *_PyAsyncGenValueWrapperNew(PyObject *);
|
|
||||||
|
|
||||||
|
|
||||||
#undef _PyGenObject_HEAD
|
#undef _PyGenObject_HEAD
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,8 @@ struct _frame {
|
||||||
PyObject *_f_frame_data[1];
|
PyObject *_f_frame_data[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern PyFrameObject* _PyFrame_New_NoTrack(PyCodeObject *code);
|
||||||
|
|
||||||
/* runtime lifecycle */
|
/* runtime lifecycle */
|
||||||
|
|
||||||
extern void _PyFrame_Fini(PyInterpreterState *interp);
|
extern void _PyFrame_Fini(PyInterpreterState *interp);
|
||||||
|
|
|
@ -1,11 +1,18 @@
|
||||||
#ifndef Py_INTERNAL_FUNCTION_H
|
#ifndef Py_INTERNAL_FUNCTION_H
|
||||||
#define 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"
|
extern PyFunctionObject* _PyFunction_FromConstructor(PyFrameConstructor *constr);
|
||||||
|
|
||||||
PyFunctionObject *
|
|
||||||
_PyFunction_FromConstructor(PyFrameConstructor *constr);
|
|
||||||
|
|
||||||
|
extern uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif /* !Py_INTERNAL_FUNCTION_H */
|
#endif /* !Py_INTERNAL_FUNCTION_H */
|
||||||
|
|
|
@ -8,6 +8,9 @@ extern "C" {
|
||||||
# error "this header requires Py_BUILD_CORE define"
|
# error "this header requires Py_BUILD_CORE define"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern PyObject *_PyGen_yf(PyGenObject *);
|
||||||
|
extern PyObject *_PyCoro_GetAwaitableIter(PyObject *o);
|
||||||
|
extern PyObject *_PyAsyncGenValueWrapperNew(PyObject *);
|
||||||
|
|
||||||
/* runtime lifecycle */
|
/* runtime lifecycle */
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "Python.h"
|
#include "Python.h"
|
||||||
#include "pycore_code.h"
|
#include "pycore_code.h"
|
||||||
#include "pycore_dict.h"
|
#include "pycore_dict.h"
|
||||||
|
#include "pycore_function.h" // _PyFunction_GetVersionForCurrentState()
|
||||||
#include "pycore_global_strings.h" // _Py_ID()
|
#include "pycore_global_strings.h" // _Py_ID()
|
||||||
#include "pycore_long.h"
|
#include "pycore_long.h"
|
||||||
#include "pycore_moduleobject.h"
|
#include "pycore_moduleobject.h"
|
||||||
|
@ -1928,7 +1929,7 @@ void
|
||||||
_Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr,
|
_Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr,
|
||||||
int oparg)
|
int oparg)
|
||||||
{
|
{
|
||||||
assert(_PyOpcode_InlineCacheEntries[BINARY_OP] ==
|
assert(_PyOpcode_InlineCacheEntries[BINARY_OP] ==
|
||||||
INLINE_CACHE_ENTRIES_BINARY_OP);
|
INLINE_CACHE_ENTRIES_BINARY_OP);
|
||||||
_PyBinaryOpCache *cache = (_PyBinaryOpCache *)(instr + 1);
|
_PyBinaryOpCache *cache = (_PyBinaryOpCache *)(instr + 1);
|
||||||
switch (oparg) {
|
switch (oparg) {
|
||||||
|
|
Loading…
Reference in a new issue