From 03775472cc69e150ced22dc30334a7a202fc0380 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 7 Oct 2024 19:54:42 +0200 Subject: [PATCH] Use _PyLong_GetOne() and _PyLong_GetZero() in long_invmod() (#125044) These functions cannot fail. --- Objects/longobject.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Objects/longobject.c b/Objects/longobject.c index 6ca8d449bcf..4e948940485 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -4828,21 +4828,12 @@ long_divmod(PyObject *a, PyObject *b) static PyLongObject * long_invmod(PyLongObject *a, PyLongObject *n) { - PyLongObject *b, *c; - /* Should only ever be called for positive n */ assert(_PyLong_IsPositive(n)); - b = (PyLongObject *)PyLong_FromLong(1L); - if (b == NULL) { - return NULL; - } - c = (PyLongObject *)PyLong_FromLong(0L); - if (c == NULL) { - Py_DECREF(b); - return NULL; - } Py_INCREF(a); + PyLongObject *b = (PyLongObject *)Py_NewRef(_PyLong_GetOne()); + PyLongObject *c = (PyLongObject *)Py_NewRef(_PyLong_GetZero()); Py_INCREF(n); /* references now owned: a, b, c, n */