summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2015-03-06 14:09:46 (GMT)
committerBenjamin Peterson <benjamin@python.org>2015-03-06 14:09:46 (GMT)
commitabda8ddd3e4927bda1b58cf60a5d09db186f6ca5 (patch)
tree9352ccd0a0602c38f74c67425a0e1896da766d75
parent49f373bf664518bb67c11ea600306a820fd5a6e8 (diff)
parenta915723dc780f2c6753487795988fe3b75e140a9 (diff)
downloadcpython-abda8ddd3e4927bda1b58cf60a5d09db186f6ca5.zip
cpython-abda8ddd3e4927bda1b58cf60a5d09db186f6ca5.tar.gz
cpython-abda8ddd3e4927bda1b58cf60a5d09db186f6ca5.tar.bz2
merge 3.4 (#23590)
-rw-r--r--Lib/test/test_float.py6
-rw-r--r--Objects/floatobject.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
index e1e1f04..bd2d6c3 100644
--- a/Lib/test/test_float.py
+++ b/Lib/test/test_float.py
@@ -6,6 +6,7 @@ from test import support
import math
from math import isinf, isnan, copysign, ldexp
import operator
+import time
import random, fractions
INF = float("inf")
@@ -129,6 +130,11 @@ class GeneralFloatCases(unittest.TestCase):
self.assertRaises(TypeError, float, Foo4(42))
self.assertAlmostEqual(float(FooStr('8')), 9.)
+ class Foo5:
+ def __float__(self):
+ return ""
+ self.assertRaises(TypeError, time.sleep, Foo5())
+
def test_is_integer(self):
self.assertFalse((1.1).is_integer())
self.assertTrue((1.).is_integer())
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 8d85121..1d369f9 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -220,6 +220,7 @@ PyFloat_AsDouble(PyObject *op)
if (fo == NULL)
return -1;
if (!PyFloat_Check(fo)) {
+ Py_DECREF(fo);
PyErr_SetString(PyExc_TypeError,
"nb_float should return float object");
return -1;