diff options
| author | Steven Knight <knight@baldmt.com> | 2005-03-08 18:05:41 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2005-03-08 18:05:41 (GMT) |
| commit | f4d8d36abedb0c859da682d60d6f35fc2dfb9f50 (patch) | |
| tree | 3782c07db4a9e72944a536f0b69a1fa6c976ee45 /src/engine | |
| parent | fedd7450e860f97d51e927dc958b14047da20651 (diff) | |
| download | SCons-f4d8d36abedb0c859da682d60d6f35fc2dfb9f50.zip SCons-f4d8d36abedb0c859da682d60d6f35fc2dfb9f50.tar.gz SCons-f4d8d36abedb0c859da682d60d6f35fc2dfb9f50.tar.bz2 | |
Speed up string expansion. Cache find_file() results in the Memoizer.
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/SCons/Node/FS.py | 1 | ||||
| -rw-r--r-- | src/engine/SCons/Util.py | 16 |
2 files changed, 7 insertions, 10 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 9dfd355..336ba1f 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -1892,6 +1892,7 @@ def find_file(filename, paths, verbose=None): Only the first file found is returned, and none is returned if no file is found. + __cacheable__ """ if verbose: if not SCons.Util.is_String(verbose): diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py index 2ca487f..e76087d 100644 --- a/src/engine/SCons/Util.py +++ b/src/engine/SCons/Util.py @@ -582,15 +582,6 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, gvars={ self.conv = conv self.gvars = gvars - def expand_var_once(self, var, lvars): - try: - return lvars[var] - except KeyError: - try: - return self.gvars[var] - except KeyError: - return '' - def expand(self, s, lvars): """Expand a single "token" as necessary, returning an appropriate string containing the expansion. @@ -629,7 +620,12 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, gvars={ else: raise SCons.Errors.UserError, "Syntax error `%s' trying to evaluate `%s'" % (e,s) else: - s = self.expand_var_once(key, lvars) + if lvars.has_key(key): + s = lvars[key] + elif self.gvars.has_key(key): + s = self.gvars[key] + else: + return '' # Before re-expanding the result, handle # recursive expansion by copying the local |
