summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2018-03-29 19:30:48 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2018-11-12 16:41:24 (GMT)
commit57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54 (patch)
treeff452a08dc8f3088b531cad91ba83872d9ede02b /src/engine/SCons/Node
parentc8b4d3bc32476914aefa7cc50c6376d401478a01 (diff)
downloadSCons-57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54.zip
SCons-57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54.tar.gz
SCons-57aefe3ca22c13c9f8cfc093f0fbcde97a61ea54.tar.bz2
Modified fix for issue #2980 where the more complicated logic is only applied when the number of children in the current build doesn't match the number in the previous build as retrieved from the sconsign file.
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r--src/engine/SCons/Node/__init__.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index 22f1be5..cdaccca 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -1491,13 +1491,11 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
result = False
bi = node.get_stored_info().binfo
- # then = bi.bsourcesigs + bi.bdependsigs + bi.bimplicitsigs
+ then = bi.bsourcesigs + bi.bdependsigs + bi.bimplicitsigs
# TODO: Can we move this into the if diff below?
- dmap = self._build_dependency_map(bi)
children = self.children()
- # diff = len(children) - len(then)
- diff = len(children) - len(dmap)
+ diff = len(children) - len(then)
if diff:
# The old and new dependency lists are different lengths.
# This always indicates that the Node must be rebuilt.
@@ -1508,11 +1506,13 @@ class Node(object, with_metaclass(NoSlotsPyPy)):
# # of the loop below that updates node information.
# then.extend([None] * diff)
# if t: Trace(': old %s new %s' % (len(then), len(children)))
+ dmap = self._build_dependency_map(bi)
+ # Now build new then based on map built above.
+ then = self._get_previous_signatures(dmap, children)
+
result = True
- # Now build new then based on map built above.
- then = self._get_previous_signatures(dmap, children)
for child, prev_ni in zip(children, then):
if _decider_map[child.changed_since_last_build](child, self, prev_ni):