summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Scanner/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Scanner/__init__.py')
-rw-r--r--src/engine/SCons/Scanner/__init__.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/engine/SCons/Scanner/__init__.py b/src/engine/SCons/Scanner/__init__.py
index 52eae8e..671eba3 100644
--- a/src/engine/SCons/Scanner/__init__.py
+++ b/src/engine/SCons/Scanner/__init__.py
@@ -137,7 +137,7 @@ class Recursive(Base):
"""
nodes = [node]
- seen = [node]
+ seen = {node : 0}
deps = []
while nodes:
n = nodes.pop(0)
@@ -145,9 +145,10 @@ class Recursive(Base):
d = self.function(n, env, self.argument)
else:
d = self.function(n, env)
- d = filter(lambda x, seen=seen: x not in seen, d)
+ d = filter(lambda x, seen=seen: not seen.has_key(x), d)
if d:
deps.extend(d)
- seen.extend(d)
nodes.extend(d)
+ for n in d:
+ seen[n] = 0
return deps