From: Raymond Hettinger Date: Fri, 1 Feb 2008 22:15:52 +0000 (+0000) Subject: Integer ratio should return ints instead of longs whereever possible. X-Git-Tag: v2.6a1~317 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c9e928ae0fbb56aed59d370c558697d996b670bf;p=thirdparty%2FPython%2Fcpython.git Integer ratio should return ints instead of longs whereever possible. --- diff --git a/Objects/floatobject.c b/Objects/floatobject.c index a3733fcd9cdd..ce6926bf6d06 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -1201,8 +1201,8 @@ float_as_integer_ratio(PyObject *v, PyObject *unused) 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 @@ float_as_integer_ratio(PyObject *v, PyObject *unused) 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