From cdd7a87831916a4828af53823384e4a8f4536895 Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Thu, 16 Dec 2010 20:04:54 +0100 Subject: [PATCH] safer way to check for builtins in Optimize.py --- Cython/Compiler/Optimize.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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( -- 2.26.2