From 1991ddc3e134e89e6c15d60e180fc67ad4c1ca01 Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Mon, 14 Feb 2000 22:22:04 +0000 Subject: [PATCH] Make multiplying a sequence by a long integer (5L * 'b') legal --- Objects/abstract.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Objects/abstract.c b/Objects/abstract.c index c120769687dbec..3fc312a7fe71ca 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -384,10 +384,21 @@ PyNumber_Multiply(v, w) } m = tp->tp_as_sequence; if (m && m->sq_repeat) { - if (!PyInt_Check(w)) + long mul_value; + + if (PyInt_Check(w)) { + mul_value = PyInt_AsLong(w); + } + else if (PyLong_Check(w)) { + mul_value = PyLong_AsLong(w); + if (PyErr_Occurred()) + return NULL; + } + else { return type_error( "can't multiply sequence with non-int"); - return (*m->sq_repeat)(v, (int)PyInt_AsLong(w)); + } + return (*m->sq_repeat)(v, (int)mul_value); } return type_error("bad operand type(s) for *"); }