Integer ratio should return ints instead of longs whereever possible.
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index a3733fc..ce6926b 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -1201,8 +1201,8 @@
if (numerator == NULL) goto error;
/* now self = numerator * 2**exponent exactly; fold in 2**exponent */
- denominator = PyInt_FromLong(1);
- py_exponent = PyInt_FromLong(labs(exponent));
+ denominator = PyLong_FromLong(1);
+ py_exponent = PyLong_FromLong(labs(exponent));
if (py_exponent == NULL) goto error;
INPLACE_UPDATE(py_exponent,
long_methods->nb_lshift(denominator, py_exponent));
@@ -1219,6 +1219,12 @@
py_exponent = NULL;
}
+ /* Returns ints instead of longs where possible */
+ INPLACE_UPDATE(numerator, PyNumber_Int(numerator));
+ if (numerator == NULL) goto error;
+ INPLACE_UPDATE(denominator, PyNumber_Int(denominator));
+ if (denominator == NULL) goto error;
+
result_pair = PyTuple_Pack(2, numerator, denominator);
#undef INPLACE_UPDATE