From: Stefan Behnel Date: Thu, 16 Dec 2010 19:04:54 +0000 (+0100) Subject: safer way to check for builtins in Optimize.py X-Git-Tag: 0.14.1rc0~13^2~20 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=cdd7a87831916a4828af53823384e4a8f4536895;p=cython.git safer way to check for builtins in Optimize.py --- diff --git a/Cython/Compiler/Optimize.py b/Cython/Compiler/Optimize.py index 3a687b40..28ed19ff 100644 --- a/Cython/Compiler/Optimize.py +++ b/Cython/Compiler/Optimize.py @@ -1110,8 +1110,9 @@ class EarlyReplaceBuiltinCalls(Visitor.EnvTransform): def _function_is_builtin_name(self, function): if not function.is_name: return False - entry = self.current_env().lookup(function.name) - if entry and getattr(entry, 'scope', None) is not Builtin.builtin_scope: + env = self.current_env() + entry = env.lookup(function.name) + if entry is not env.builtin_scope().lookup_here(function.name): return False # if entry is None, it's at least an undeclared name, so likely builtin return True @@ -1724,8 +1725,8 @@ class OptimizeBuiltinCalls(Visitor.EnvTransform): # into a C function call (defined in the builtin scope) if not function.entry: return node - is_builtin = function.entry.is_builtin \ - or getattr(function.entry, 'scope', None) is Builtin.builtin_scope + is_builtin = function.entry.is_builtin or \ + function.entry is self.current_env().builtin_scope().lookup_here(function.name) if not is_builtin: return node function_handler = self._find_handler(