Skip to content

Commit b4068b3

Browse files
committed
revert any/all static-ification
1 parent f654c71 commit b4068b3

6 files changed

Lines changed: 13 additions & 59 deletions

File tree

Include/internal/pycore_opcode_utils.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,6 @@ extern "C" {
8282
#define CONSTANT_MINUS_ONE 11
8383
#define NUM_COMMON_CONSTANTS 12
8484

85-
PyAPI_DATA(PyCFunctionObject) _PyBuiltin_All;
86-
PyAPI_DATA(PyCFunctionObject) _PyBuiltin_Any;
87-
88-
/* Non-static: used by static _PyBuiltin_All/_Any in bltinmodule.c. */
89-
extern PyObject *_PyCFunction_vectorcall_O(
90-
PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
91-
9285
/* Values used in the oparg for RESUME */
9386
#define RESUME_AT_FUNC_START 0
9487
#define RESUME_AFTER_YIELD 1

Objects/methodobject.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ static PyObject * cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD(
2525
PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2626
static PyObject * cfunction_vectorcall_NOARGS(
2727
PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
28-
/* Non-static: used by static _PyBuiltin_All/_Any in bltinmodule.c. */
29-
PyObject *_PyCFunction_vectorcall_O(
28+
static PyObject * cfunction_vectorcall_O(
3029
PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
3130
static PyObject * cfunction_call(
3231
PyObject *func, PyObject *args, PyObject *kwargs);
@@ -68,7 +67,7 @@ PyCMethod_New(PyMethodDef *ml, PyObject *self, PyObject *module, PyTypeObject *c
6867
vectorcall = cfunction_vectorcall_NOARGS;
6968
break;
7069
case METH_O:
71-
vectorcall = _PyCFunction_vectorcall_O;
70+
vectorcall = cfunction_vectorcall_O;
7271
break;
7372
case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
7473
vectorcall = cfunction_vectorcall_FASTCALL_KEYWORDS_METHOD;
@@ -353,12 +352,6 @@ meth_hash(PyObject *self)
353352
return x;
354353
}
355354

356-
static int
357-
cfunction_is_gc(PyObject *op)
358-
{
359-
return !_Py_IsStaticImmortal(op);
360-
}
361-
362355

363356
PyTypeObject PyCFunction_Type = {
364357
PyVarObject_HEAD_INIT(&PyType_Type, 0)
@@ -394,7 +387,6 @@ PyTypeObject PyCFunction_Type = {
394387
meth_getsets, /* tp_getset */
395388
0, /* tp_base */
396389
0, /* tp_dict */
397-
.tp_is_gc = cfunction_is_gc,
398390
};
399391

400392
PyTypeObject PyCMethod_Type = {
@@ -519,8 +511,8 @@ cfunction_vectorcall_NOARGS(
519511
return result;
520512
}
521513

522-
PyObject *
523-
_PyCFunction_vectorcall_O(
514+
static PyObject *
515+
cfunction_vectorcall_O(
524516
PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
525517
{
526518
PyThreadState *tstate = _PyThreadState_GET();

Python/bltinmodule.c

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "pycore_long.h" // _PyLong_CompactValue
1414
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
1515
#include "pycore_object.h" // _Py_AddToAllObjects()
16-
#include "pycore_opcode_utils.h" // _PyBuiltin_All, _PyBuiltin_Any, _PyCFunction_vectorcall_O
1716
#include "pycore_pyerrors.h" // _PyErr_NoMemory()
1817
#include "pycore_pystate.h" // _PyThreadState_GET()
1918
#include "pycore_pythonrun.h" // _Py_SourceAsString()
@@ -464,32 +463,6 @@ builtin_any(PyObject *module, PyObject *iterable)
464463
Py_RETURN_FALSE;
465464
}
466465

467-
static PyMethodDef _PyBuiltin_All_methoddef = {
468-
"all", (PyCFunction)builtin_all, METH_O, builtin_all__doc__,
469-
};
470-
471-
PyCFunctionObject _PyBuiltin_All = {
472-
.ob_base = _PyObject_HEAD_INIT(&PyCFunction_Type),
473-
.m_ml = &_PyBuiltin_All_methoddef,
474-
.m_self = NULL,
475-
.m_module = (PyObject *)&_Py_ID(builtins),
476-
.m_weakreflist = NULL,
477-
.vectorcall = _PyCFunction_vectorcall_O,
478-
};
479-
480-
static PyMethodDef _PyBuiltin_Any_methoddef = {
481-
"any", (PyCFunction)builtin_any, METH_O, builtin_any__doc__,
482-
};
483-
484-
PyCFunctionObject _PyBuiltin_Any = {
485-
.ob_base = _PyObject_HEAD_INIT(&PyCFunction_Type),
486-
.m_ml = &_PyBuiltin_Any_methoddef,
487-
.m_self = NULL,
488-
.m_module = (PyObject *)&_Py_ID(builtins),
489-
.m_weakreflist = NULL,
490-
.vectorcall = _PyCFunction_vectorcall_O,
491-
};
492-
493466
/*[clinic input]
494467
ascii as builtin_ascii
495468
@@ -3457,6 +3430,8 @@ static PyMethodDef builtin_methods[] = {
34573430
BUILTIN___IMPORT___METHODDEF
34583431
BUILTIN___LAZY_IMPORT___METHODDEF
34593432
BUILTIN_ABS_METHODDEF
3433+
BUILTIN_ALL_METHODDEF
3434+
BUILTIN_ANY_METHODDEF
34603435
BUILTIN_ASCII_METHODDEF
34613436
BUILTIN_BIN_METHODDEF
34623437
{"breakpoint", _PyCFunction_CAST(builtin_breakpoint), METH_FASTCALL | METH_KEYWORDS, breakpoint_doc},

Python/pylifecycle.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#include "pycore_moduleobject.h" // _PyModule_InitModuleDictWatcher()
1919
#include "pycore_object.h" // _PyDebug_PrintTotalRefs()
2020
#include "pycore_obmalloc.h" // _PyMem_init_obmalloc()
21-
#include "pycore_opcode_utils.h" // _PyBuiltin_All, _PyBuiltin_Any
2221
#include "pycore_optimizer.h" // _Py_Executors_InvalidateAll
2322
#include "pycore_pathconfig.h" // _PyPathConfig_UpdateGlobal()
2423
#include "pycore_pyerrors.h" // _PyErr_Occurred()
@@ -868,21 +867,21 @@ pycore_init_builtins(PyThreadState *tstate)
868867
}
869868
interp->callable_cache.len = len;
870869

871-
/* Install the static all/any singletons. */
872-
if (PyDict_SetItem(builtins_dict, &_Py_ID(all),
873-
(PyObject *)&_PyBuiltin_All) < 0) {
870+
PyObject *all = PyDict_GetItemWithError(builtins_dict, &_Py_ID(all));
871+
if (!all) {
874872
goto error;
875873
}
876-
if (PyDict_SetItem(builtins_dict, &_Py_ID(any),
877-
(PyObject *)&_PyBuiltin_Any) < 0) {
874+
875+
PyObject *any = PyDict_GetItemWithError(builtins_dict, &_Py_ID(any));
876+
if (!any) {
878877
goto error;
879878
}
880879

881880
interp->common_consts[CONSTANT_ASSERTIONERROR] = PyExc_AssertionError;
882881
interp->common_consts[CONSTANT_NOTIMPLEMENTEDERROR] = PyExc_NotImplementedError;
883882
interp->common_consts[CONSTANT_BUILTIN_TUPLE] = (PyObject *)&PyTuple_Type;
884-
interp->common_consts[CONSTANT_BUILTIN_ALL] = (PyObject *)&_PyBuiltin_All;
885-
interp->common_consts[CONSTANT_BUILTIN_ANY] = (PyObject *)&_PyBuiltin_Any;
883+
interp->common_consts[CONSTANT_BUILTIN_ALL] = all;
884+
interp->common_consts[CONSTANT_BUILTIN_ANY] = any;
886885
interp->common_consts[CONSTANT_BUILTIN_LIST] = (PyObject *)&PyList_Type;
887886
interp->common_consts[CONSTANT_BUILTIN_SET] = (PyObject *)&PySet_Type;
888887
interp->common_consts[CONSTANT_NONE] = Py_None;
@@ -894,7 +893,6 @@ pycore_init_builtins(PyThreadState *tstate)
894893
(PyObject *)&_PyLong_SMALL_INTS[_PY_NSMALLNEGINTS - 1];
895894
for (int i = 0; i < NUM_COMMON_CONSTANTS; i++) {
896895
assert(interp->common_consts[i] != NULL);
897-
assert(_Py_IsStaticImmortal(interp->common_consts[i]));
898896
}
899897

900898
PyObject *list_append = _PyType_Lookup(&PyList_Type, &_Py_ID(append));

Tools/c-analyzer/cpython/ignored.tsv

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@ Modules/getbuildinfo.c - buildinfo -
4949
Modules/getbuildinfo.c - initialized -
5050
Python/getversion.c - initialized -
5151
Python/getversion.c - version -
52-
## builtin singletons
53-
Python/bltinmodule.c - _PyBuiltin_All -
54-
Python/bltinmodule.c - _PyBuiltin_Any -
5552

5653
## public C-API - set during first init
5754
Python/bootstrap_hash.c - _Py_HashSecret_Initialized -

Tools/gdb/libpython.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1810,7 +1810,6 @@ def is_other_python_frame(self):
18101810
return False
18111811

18121812
if (caller.startswith('cfunction_vectorcall_') or
1813-
caller.startswith('_PyCFunction_vectorcall_') or
18141813
caller == 'cfunction_call'):
18151814
arg_name = 'func'
18161815
# Within that frame:

0 commit comments

Comments
 (0)