From d2ed77fafe9c3762d19dfd9ae43938d2aebc7bbf Mon Sep 17 00:00:00 2001 From: Jim Fulton Date: Tue, 31 Aug 2004 22:16:42 +0000 Subject: Fixed collector issue 266 http://collector.zope.org/Zope3-dev/266 --- taldefs.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/taldefs.py b/taldefs.py index c3fbcfb..54bca67 100644 --- a/taldefs.py +++ b/taldefs.py @@ -149,9 +149,17 @@ def isCurrentVersion(program): version = getProgramVersion(program) return version == TAL_VERSION +def isinstance_(ob, type): + # Proxy-friendly and faster isinstance_ check for new-style objects + try: + return type in ob.__class__.__mro__ + except AttributeError: + return False + + def getProgramMode(program): version = getProgramVersion(program) - if (version == TAL_VERSION and isinstance(program[1], tuple) and + if (version == TAL_VERSION and isinstance_(program[1], tuple) and len(program[1]) == 2): opcode, mode = program[1] if opcode == "mode": @@ -160,7 +168,7 @@ def getProgramMode(program): def getProgramVersion(program): if (len(program) >= 2 and - isinstance(program[0], tuple) and len(program[0]) == 2): + isinstance_(program[0], tuple) and len(program[0]) == 2): opcode, version = program[0] if opcode == "version": return version -- cgit v1.2.1