[3.10] bpo-42161: mathmodule.c: move _PyLong_GetOne() loop invariant (GH-26391) by miss-islington · Pull Request #26393 · python/cpython
PyObject *one = _PyLong_GetOne(); // borrowed ref for (i = 1; i < nargs; i++) { x = _PyNumber_Index(args[i]); if (x == NULL) { Py_DECREF(res); return NULL; } if (res == _PyLong_GetOne()) { if (res == one) { /* Fast path: just check arguments. It is okay to use identity comparison here. */ Py_DECREF(x);
PyObject *zero = _PyLong_GetZero(); // borrowed ref for (i = 1; i < nargs; i++) { x = PyNumber_Index(args[i]); if (x == NULL) { Py_DECREF(res); return NULL; } if (res == _PyLong_GetZero()) { if (res == zero) { /* Fast path: just check arguments. It is okay to use identity comparison here. */ Py_DECREF(x);
factor = n; Py_INCREF(factor); factor = Py_NewRef(n); PyObject *one = _PyLong_GetOne(); // borrowed ref for (i = 1; i < factors; ++i) { Py_SETREF(factor, PyNumber_Subtract(factor, _PyLong_GetOne())); Py_SETREF(factor, PyNumber_Subtract(factor, one)); if (factor == NULL) { goto error; }
factor = n; Py_INCREF(factor); factor = Py_NewRef(n); PyObject *one = _PyLong_GetOne(); // borrowed ref for (i = 1; i < factors; ++i) { Py_SETREF(factor, PyNumber_Subtract(factor, _PyLong_GetOne())); Py_SETREF(factor, PyNumber_Subtract(factor, one)); if (factor == NULL) { goto error; }