From 058b96053563bb5c413dc081eb8cc0916516525c Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Mon, 5 Jun 2023 22:38:36 +0900 Subject: [PATCH] gh-103906: Remove immortal refcounting in compile/marshal.c (gh-103922) --- Objects/sliceobject.c | 2 +- Python/compile.c | 6 +++--- Python/marshal.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c index e6776ac92b669c..5a33977f064421 100644 --- a/Objects/sliceobject.c +++ b/Objects/sliceobject.c @@ -26,7 +26,7 @@ ellipsis_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) PyErr_SetString(PyExc_TypeError, "EllipsisType takes no arguments"); return NULL; } - return Py_NewRef(Py_Ellipsis); + return Py_Ellipsis; } static void diff --git a/Python/compile.c b/Python/compile.c index d52c2b0802b546..32431728422765 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -900,10 +900,10 @@ static PyObject* merge_consts_recursive(PyObject *const_cache, PyObject *o) { assert(PyDict_CheckExact(const_cache)); - // None and Ellipsis are singleton, and key is the singleton. + // None and Ellipsis are immortal objects, and key is the singleton. // No need to merge object and key. if (o == Py_None || o == Py_Ellipsis) { - return Py_NewRef(o); + return o; } PyObject *key = _PyCode_ConstantKey(o); @@ -6355,7 +6355,7 @@ compiler_error(struct compiler *c, location loc, } PyObject *loc_obj = PyErr_ProgramTextObject(c->c_filename, loc.lineno); if (loc_obj == NULL) { - loc_obj = Py_NewRef(Py_None); + loc_obj = Py_None; } PyObject *args = Py_BuildValue("O(OiiOii)", msg, c->c_filename, loc.lineno, loc.col_offset + 1, loc_obj, diff --git a/Python/marshal.c b/Python/marshal.c index 6439503d2c6879..352976b1d69f04 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -1019,7 +1019,7 @@ r_object(RFILE *p) break; case TYPE_NONE: - retval = Py_NewRef(Py_None); + retval = Py_None; break; case TYPE_STOPITER: @@ -1027,15 +1027,15 @@ r_object(RFILE *p) break; case TYPE_ELLIPSIS: - retval = Py_NewRef(Py_Ellipsis); + retval = Py_Ellipsis; break; case TYPE_FALSE: - retval = Py_NewRef(Py_False); + retval = Py_False; break; case TYPE_TRUE: - retval = Py_NewRef(Py_True); + retval = Py_True; break; case TYPE_INT: