From: Victor Stinner Date: Mon, 7 Oct 2024 17:54:42 +0000 (+0200) Subject: Use _PyLong_GetOne() and _PyLong_GetZero() in long_invmod() (#125044) X-Git-Tag: v3.14.0a1~160 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=03775472cc69e150ced22dc30334a7a202fc0380;p=thirdparty%2FPython%2Fcpython.git Use _PyLong_GetOne() and _PyLong_GetZero() in long_invmod() (#125044) These functions cannot fail. --- diff --git a/Objects/longobject.c b/Objects/longobject.c index 6ca8d449bcf4..4e9489404857 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 */