summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/longobject.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 98ff9a8..102093e 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -5280,14 +5280,19 @@ static PyObject *
int_as_integer_ratio_impl(PyObject *self)
/*[clinic end generated code: output=e60803ae1cc8621a input=55ce3058e15de393]*/
{
- if PyLong_CheckExact(self) {
+ PyObject *numerator;
+ PyObject *ratio_tuple;
+
+ if (PyLong_CheckExact(self)) {
return PyTuple_Pack(2, self, _PyLong_One);
- } else {
- PyObject *numerator = _PyLong_Copy(self);
- PyObject *ratio_tuple = PyTuple_Pack(2, numerator, _PyLong_One);
- Py_DECREF(numerator);
- return ratio_tuple;
}
+ numerator = _PyLong_Copy(self);
+ if (numerator == NULL) {
+ return NULL;
+ }
+ ratio_tuple = PyTuple_Pack(2, numerator, _PyLong_One);
+ Py_DECREF(numerator);
+ return ratio_tuple;
}
/*[clinic input]