summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/FS.py
diff options
context:
space:
mode:
authorGary Oberbrunner <garyo@oberbrunner.com>2014-03-01 22:13:14 (GMT)
committerGary Oberbrunner <garyo@oberbrunner.com>2014-03-01 22:13:14 (GMT)
commit0eec585b4ffaad0c11a8d1cff541e9f4a50115ac (patch)
tree944545bdef1a19b0d6df8c5b080680bf661a0612 /src/engine/SCons/Node/FS.py
parent4a44ea1245db25257716fe66ca36c1b719e8b1e4 (diff)
parent4fea122590f994aa579167058f000c2dd6465b85 (diff)
downloadSCons-0eec585b4ffaad0c11a8d1cff541e9f4a50115ac.zip
SCons-0eec585b4ffaad0c11a8d1cff541e9f4a50115ac.tar.gz
SCons-0eec585b4ffaad0c11a8d1cff541e9f4a50115ac.tar.bz2
Merge c3cba85 from Dirk Baechle, fix for spurious rebuilds. See b4bc497.
Diffstat (limited to 'src/engine/SCons/Node/FS.py')
-rw-r--r--src/engine/SCons/Node/FS.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index ace24aa..219718c 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -2779,7 +2779,7 @@ class File(Base):
if not hasattr(self.attributes, 'keep_targetinfo'):
# Cache some required values, before releasing
# stuff like env, executor and builder...
- self.changed()
+ self.changed(allowcache=True)
self.get_contents_sig()
self.get_build_env()
# Now purge unneeded stuff to free memory...
@@ -3035,7 +3035,7 @@ class File(Base):
self.scanner_paths = None
- def changed(self, node=None):
+ def changed(self, node=None, allowcache=False):
"""
Returns if the node is up-to-date with respect to the BuildInfo
stored last time it was built.
@@ -3043,6 +3043,8 @@ class File(Base):
For File nodes this is basically a wrapper around Node.changed(),
but we allow the return value to get cached after the reference
to the Executor got released in release_target_info().
+
+ @see: Node.changed()
"""
if node is None:
try:
@@ -3051,7 +3053,8 @@ class File(Base):
pass
has_changed = SCons.Node.Node.changed(self, node)
- self._memo['changed'] = has_changed
+ if allowcache:
+ self._memo['changed'] = has_changed
return has_changed
def changed_content(self, target, prev_ni):