mirror of
https://github.com/python/cpython.git
synced 2024-11-23 01:45:25 +08:00
gh-106320: Create pycore_modsupport.h header file (#106355)
Remove the following functions from the C API, move them to the internal C API: add a new pycore_modsupport.h internal header file: * PyModule_CreateInitialized() * _PyArg_NoKwnames() * _Py_VaBuildStack() No longer export these functions.
This commit is contained in:
parent
5ccbbe5bb9
commit
35963da40f
@ -11,12 +11,9 @@ PyAPI_FUNC(int) _PyArg_UnpackStack(
|
||||
...);
|
||||
|
||||
PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kwargs);
|
||||
PyAPI_FUNC(int) _PyArg_NoKwnames(const char *funcname, PyObject *kwnames);
|
||||
PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args);
|
||||
#define _PyArg_NoKeywords(funcname, kwargs) \
|
||||
((kwargs) == NULL || _PyArg_NoKeywords((funcname), (kwargs)))
|
||||
#define _PyArg_NoKwnames(funcname, kwnames) \
|
||||
((kwnames) == NULL || _PyArg_NoKwnames((funcname), (kwnames)))
|
||||
#define _PyArg_NoPositional(funcname, args) \
|
||||
((args) == NULL || _PyArg_NoPositional((funcname), (args)))
|
||||
|
||||
@ -29,13 +26,6 @@ PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t,
|
||||
((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \
|
||||
|| _PyArg_CheckPositional((funcname), (nargs), (min), (max)))
|
||||
|
||||
PyAPI_FUNC(PyObject **) _Py_VaBuildStack(
|
||||
PyObject **small_stack,
|
||||
Py_ssize_t small_stack_len,
|
||||
const char *format,
|
||||
va_list va,
|
||||
Py_ssize_t *p_nargs);
|
||||
|
||||
typedef struct _PyArg_Parser {
|
||||
int initialized;
|
||||
const char *format;
|
||||
@ -83,5 +73,3 @@ PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg(
|
||||
(minpos) <= (nargs) && (nargs) <= (maxpos) && (args) != NULL) ? (args) : \
|
||||
_PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \
|
||||
(minpos), (maxpos), (minkw), (buf)))
|
||||
|
||||
PyAPI_FUNC(PyObject *) _PyModule_CreateInitialized(PyModuleDef*, int apiver);
|
||||
|
29
Include/internal/pycore_modsupport.h
Normal file
29
Include/internal/pycore_modsupport.h
Normal file
@ -0,0 +1,29 @@
|
||||
#ifndef Py_INTERNAL_MODSUPPORT_H
|
||||
#define Py_INTERNAL_MODSUPPORT_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef Py_BUILD_CORE
|
||||
# error "this header requires Py_BUILD_CORE define"
|
||||
#endif
|
||||
|
||||
|
||||
extern int _PyArg_NoKwnames(const char *funcname, PyObject *kwnames);
|
||||
#define _PyArg_NoKwnames(funcname, kwnames) \
|
||||
((kwnames) == NULL || _PyArg_NoKwnames((funcname), (kwnames)))
|
||||
|
||||
extern PyObject ** _Py_VaBuildStack(
|
||||
PyObject **small_stack,
|
||||
Py_ssize_t small_stack_len,
|
||||
const char *format,
|
||||
va_list va,
|
||||
Py_ssize_t *p_nargs);
|
||||
|
||||
extern PyObject* _PyModule_CreateInitialized(PyModuleDef*, int apiver);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif // !Py_INTERNAL_MODSUPPORT_H
|
||||
|
@ -1761,6 +1761,7 @@ PYTHON_HEADERS= \
|
||||
$(srcdir)/Include/internal/pycore_intrinsics.h \
|
||||
$(srcdir)/Include/internal/pycore_list.h \
|
||||
$(srcdir)/Include/internal/pycore_long.h \
|
||||
$(srcdir)/Include/internal/pycore_modsupport.h \
|
||||
$(srcdir)/Include/internal/pycore_moduleobject.h \
|
||||
$(srcdir)/Include/internal/pycore_namespace.h \
|
||||
$(srcdir)/Include/internal/pycore_object.h \
|
||||
|
@ -1,7 +1,9 @@
|
||||
#include "Python.h"
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_moduleobject.h" // _PyModule_GetState()
|
||||
#include "structmember.h" // PyMemberDef
|
||||
#include "pycore_runtime.h" // _Py_ID()
|
||||
|
||||
#include "structmember.h" // PyMemberDef
|
||||
#include "clinic/_operator.c.h"
|
||||
|
||||
typedef struct {
|
||||
|
@ -1,8 +1,9 @@
|
||||
/* Boolean type, a subtype of int */
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_object.h" // _Py_FatalRefcountError()
|
||||
#include "pycore_long.h" // FALSE_TAG TRUE_TAG
|
||||
#include "pycore_long.h" // FALSE_TAG TRUE_TAG
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _Py_FatalRefcountError()
|
||||
#include "pycore_runtime.h" // _Py_ID()
|
||||
|
||||
#include <stddef.h>
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include "pycore_call.h" // _PyObject_CallNoArgsTstate()
|
||||
#include "pycore_ceval.h" // _Py_EnterRecursiveCallTstate()
|
||||
#include "pycore_dict.h" // _PyDict_FromItems()
|
||||
#include "pycore_modsupport.h" // _Py_VaBuildStack()
|
||||
#include "pycore_object.h" // _PyCFunctionWithKeywords_TrampolineCall()
|
||||
#include "pycore_pyerrors.h" // _PyErr_Occurred()
|
||||
#include "pycore_pystate.h" // _PyThreadState_GET()
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "Python.h"
|
||||
#include "pycore_call.h" // _PyObject_CallNoArgs()
|
||||
#include "pycore_long.h" // _PyLong_GetOne()
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _PyObject_GC_TRACK()
|
||||
|
||||
#include "clinic/enumobject.c.h"
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "pycore_initconfig.h" // _PyStatus_OK()
|
||||
#include "pycore_interp.h" // _PyInterpreterState.float_state
|
||||
#include "pycore_long.h" // _PyLong_GetOne()
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _PyObject_Init()
|
||||
#include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR
|
||||
#include "pycore_pystate.h" // _PyInterpreterState_GET()
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include "pycore_interp.h" // PyInterpreterState.list
|
||||
#include "pycore_list.h" // struct _Py_list_state, _PyListIterObject
|
||||
#include "pycore_long.h" // _PyLong_DigitCount
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _PyObject_GC_TRACK()
|
||||
#include "pycore_tuple.h" // _PyTuple_FromArray()
|
||||
#include <stddef.h>
|
||||
|
@ -5,8 +5,9 @@
|
||||
#include "pycore_call.h" // _PyObject_CallNoArgs()
|
||||
#include "pycore_interp.h" // PyInterpreterState.importlib
|
||||
#include "pycore_object.h" // _PyType_AllocNoTrack
|
||||
#include "pycore_pystate.h" // _PyInterpreterState_GET()
|
||||
#include "pycore_moduleobject.h" // _PyModule_GetDef()
|
||||
#include "pycore_modsupport.h" // _PyModule_CreateInitialized()
|
||||
#include "pycore_pystate.h" // _PyInterpreterState_GET()
|
||||
#include "structmember.h" // PyMemberDef
|
||||
|
||||
|
||||
|
@ -2,8 +2,9 @@
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_abstract.h" // _PyIndex_Check()
|
||||
#include "pycore_range.h"
|
||||
#include "pycore_long.h" // _PyLong_GetZero()
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_range.h"
|
||||
#include "pycore_tuple.h" // _PyTuple_ITEMS()
|
||||
#include "structmember.h" // PyMemberDef
|
||||
|
||||
|
@ -32,6 +32,7 @@
|
||||
*/
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
|
||||
#include <stddef.h> // offsetof()
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include "pycore_abstract.h" // _PyIndex_Check()
|
||||
#include "pycore_gc.h" // _PyObject_GC_IS_TRACKED()
|
||||
#include "pycore_initconfig.h" // _PyStatus_OK()
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _PyObject_GC_TRACK(), _Py_FatalRefcountError()
|
||||
|
||||
/*[clinic input]
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "pycore_frame.h" // _PyInterpreterFrame
|
||||
#include "pycore_long.h" // _PyLong_IsNegative()
|
||||
#include "pycore_memoryobject.h" // _PyMemoryView_FromBufferProc()
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_moduleobject.h" // _PyModule_GetDef()
|
||||
#include "pycore_object.h" // _PyType_HasFeature()
|
||||
#include "pycore_pyerrors.h" // _PyErr_Occurred()
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "Python.h"
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _PyObject_GET_WEAKREFS_LISTPTR()
|
||||
#include "pycore_weakref.h" // _PyWeakref_GET_REF()
|
||||
#include "structmember.h" // PyMemberDef
|
||||
|
@ -241,6 +241,7 @@
|
||||
<ClInclude Include="..\Include\internal\pycore_intrinsics.h" />
|
||||
<ClInclude Include="..\Include\internal\pycore_list.h" />
|
||||
<ClInclude Include="..\Include\internal\pycore_long.h" />
|
||||
<ClInclude Include="..\Include\internal\pycore_modsupport.h" />
|
||||
<ClInclude Include="..\Include\internal\pycore_moduleobject.h" />
|
||||
<ClInclude Include="..\Include\internal\pycore_namespace.h" />
|
||||
<ClInclude Include="..\Include\internal\pycore_object.h" />
|
||||
|
@ -627,6 +627,9 @@
|
||||
<ClInclude Include="..\Include\internal\pycore_long.h">
|
||||
<Filter>Include\internal</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\Include\internal\pycore_modsupport.h">
|
||||
<Filter>Include\internal</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\Include\internal\pycore_moduleobject.h">
|
||||
<Filter>Include\internal</Filter>
|
||||
</ClInclude>
|
||||
|
@ -4,13 +4,14 @@
|
||||
#include <ctype.h>
|
||||
#include "pycore_ast.h" // _PyAST_Validate()
|
||||
#include "pycore_call.h" // _PyObject_CallNoArgs()
|
||||
#include "pycore_ceval.h" // _PyEval_Vector()
|
||||
#include "pycore_compile.h" // _PyAST_Compile()
|
||||
#include "pycore_long.h" // _PyLong_CompactValue
|
||||
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
|
||||
#include "pycore_object.h" // _Py_AddToAllObjects()
|
||||
#include "pycore_pyerrors.h" // _PyErr_NoMemory()
|
||||
#include "pycore_pystate.h" // _PyThreadState_GET()
|
||||
#include "pycore_tuple.h" // _PyTuple_FromArray()
|
||||
#include "pycore_ceval.h" // _PyEval_Vector()
|
||||
|
||||
#include "clinic/bltinmodule.c.h"
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "pycore_frame.h"
|
||||
#include "pycore_interp.h"
|
||||
#include "pycore_long.h"
|
||||
#include "pycore_modsupport.h" // _PyModule_CreateInitialized()
|
||||
#include "pycore_namespace.h"
|
||||
#include "pycore_object.h"
|
||||
#include "pycore_opcode.h"
|
||||
|
@ -20,6 +20,7 @@ Data members:
|
||||
#include "pycore_frame.h" // _PyInterpreterFrame
|
||||
#include "pycore_initconfig.h" // _PyStatus_EXCEPTION()
|
||||
#include "pycore_long.h" // _PY_LONG_MAX_STR_DIGITS_THRESHOLD
|
||||
#include "pycore_modsupport.h" // _PyModule_CreateInitialized()
|
||||
#include "pycore_namespace.h" // _PyNamespace_New()
|
||||
#include "pycore_object.h" // _PyObject_IS_GC()
|
||||
#include "pycore_pathconfig.h" // _PyPathConfig_ComputeSysPath0()
|
||||
|
Loading…
Reference in New Issue
Block a user