diff options
author | Dirk Baechle <dl9obn@darc.de> | 2014-02-14 20:42:39 (GMT) |
---|---|---|
committer | Dirk Baechle <dl9obn@darc.de> | 2014-02-14 20:42:39 (GMT) |
commit | 4fea122590f994aa579167058f000c2dd6465b85 (patch) | |
tree | 3095029bbc2d17c569046eb8fa42db063d96ab47 /src/engine/SCons/Node/FS.py | |
parent | cb44210566c28d16c1e2c91d898306ad539fa9f5 (diff) | |
download | SCons-4fea122590f994aa579167058f000c2dd6465b85.zip SCons-4fea122590f994aa579167058f000c2dd6465b85.tar.gz SCons-4fea122590f994aa579167058f000c2dd6465b85.tar.bz2 |
- fix for spurious rebuilds, allow caching of the changed() method's value only when called from File.release_target_info()
Diffstat (limited to 'src/engine/SCons/Node/FS.py')
-rw-r--r-- | src/engine/SCons/Node/FS.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index aaa5b47..dc8affe 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... @@ -3034,7 +3034,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. @@ -3042,6 +3042,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: @@ -3050,7 +3052,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): |