From 4965bc8ac4c9922f87ec7bfa839a85c95f411a5c Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 14 May 1991 11:51:49 +0000 Subject: [PATCH] Declare ticker as int; made testbool generic for all numeric types --- Python/ceval.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Python/ceval.c b/Python/ceval.c index 99570e9860b..82410d5a3ab 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -162,7 +162,7 @@ eval_code(co, globals, locals, arg) lineno = -1; for (;;) { - static ticker; + static int ticker; /* Do periodic things */ @@ -983,16 +983,14 @@ static int testbool(v) object *v; { - if (is_intobject(v)) - return getintvalue(v) != 0; - if (is_floatobject(v)) - return getfloatvalue(v) != 0.0; + if (v == None) + return 0; + if (v->ob_type->tp_as_number != NULL) + return (*v->ob_type->tp_as_number->nb_nonzero)(v); if (v->ob_type->tp_as_sequence != NULL) return (*v->ob_type->tp_as_sequence->sq_length)(v) != 0; if (v->ob_type->tp_as_mapping != NULL) return (*v->ob_type->tp_as_mapping->mp_length)(v) != 0; - if (v == None) - return 0; /* All other objects are 'true' */ return 1; }