From: Guido van Rossum Date: Tue, 14 May 1991 11:51:49 +0000 (+0000) Subject: Declare ticker as int; made testbool generic for all numeric types X-Git-Tag: v0.9.8~946 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4965bc8ac4c9922f87ec7bfa839a85c95f411a5c;p=thirdparty%2FPython%2Fcpython.git Declare ticker as int; made testbool generic for all numeric types --- diff --git a/Python/ceval.c b/Python/ceval.c index 99570e9860bc..82410d5a3aba 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; }