From b96fdc604ab7abf9fd6cee006bd852b9dc36f7df Mon Sep 17 00:00:00 2001 From: monadchains Date: Mon, 31 Oct 2022 22:58:32 +0100 Subject: [PATCH] Remove negative reference counter check section from PyObject_Print --- Objects/object.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/Objects/object.c b/Objects/object.c index 837f0a1a578ce6..e81412160a4c14 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -271,33 +271,26 @@ PyObject_Print(PyObject *op, FILE *fp, int flags) Py_END_ALLOW_THREADS } else { - if (Py_REFCNT(op) <= 0) { - Py_BEGIN_ALLOW_THREADS - fprintf(fp, "", Py_REFCNT(op), (void *)op); - Py_END_ALLOW_THREADS + PyObject *s; + if (flags & Py_PRINT_RAW) + s = PyObject_Str(op); + else + s = PyObject_Repr(op); + if (s == NULL) { + ret = -1; } else { - PyObject *s; - if (flags & Py_PRINT_RAW) - s = PyObject_Str(op); - else - s = PyObject_Repr(op); - if (s == NULL) { + assert(PyUnicode_Check(s)); + const char *t; + Py_ssize_t len; + t = PyUnicode_AsUTF8AndSize(s, &len); + if (t == NULL) { ret = -1; } else { - assert(PyUnicode_Check(s)); - const char *t; - Py_ssize_t len; - t = PyUnicode_AsUTF8AndSize(s, &len); - if (t == NULL) { - ret = -1; - } - else { - fwrite(t, 1, len, fp); - } - Py_DECREF(s); + fwrite(t, 1, len, fp); } + Py_DECREF(s); } } if (ret == 0) {