summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-03-20 07:13:47 (GMT)
committerGitHub <noreply@github.com>2017-03-20 07:13:47 (GMT)
commit6fad4090ec9a27f8572bb00661b9890f01fb62f7 (patch)
tree8b47e7904802704a193ced6099b7e36ed7dac4df /Objects
parentd1f566f6bddc67e9870eaa75ae477208b9a199be (diff)
downloadcpython-6fad4090ec9a27f8572bb00661b9890f01fb62f7.zip
cpython-6fad4090ec9a27f8572bb00661b9890f01fb62f7.tar.gz
cpython-6fad4090ec9a27f8572bb00661b9890f01fb62f7.tar.bz2
bpo-28876: bool of large range raises OverflowError (#699) (#734)
(cherry picked from commit e46fb8611867fa3b407a813f53137929b7cb4a10)
Diffstat (limited to 'Objects')
-rw-r--r--Objects/rangeobject.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c
index 8449fc7..8f5fc43 100644
--- a/Objects/rangeobject.c
+++ b/Objects/rangeobject.c
@@ -668,6 +668,16 @@ static PyMappingMethods range_as_mapping = {
(objobjargproc)0, /* mp_ass_subscript */
};
+static int
+range_bool(rangeobject* self)
+{
+ return PyObject_IsTrue(self->length);
+}
+
+static PyNumberMethods range_as_number = {
+ .nb_bool = (inquiry)range_bool,
+};
+
static PyObject * range_iter(PyObject *seq);
static PyObject * range_reverse(PyObject *seq);
@@ -707,7 +717,7 @@ PyTypeObject PyRange_Type = {
0, /* tp_setattr */
0, /* tp_reserved */
(reprfunc)range_repr, /* tp_repr */
- 0, /* tp_as_number */
+ &range_as_number, /* tp_as_number */
&range_as_sequence, /* tp_as_sequence */
&range_as_mapping, /* tp_as_mapping */
(hashfunc)range_hash, /* tp_hash */