diff options
author | Steven Knight <knight@baldmt.com> | 2004-05-01 19:12:23 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-05-01 19:12:23 (GMT) |
commit | 28ad1a68eea6bb49178a9837a95bcba973ed015d (patch) | |
tree | 2b352653ffda1d21dbdf1eee417a16eae66e2b4a /src/engine/SCons/Builder.py | |
parent | a293ba1834e12a50ec1f79c5aa746a182285f60f (diff) | |
download | SCons-28ad1a68eea6bb49178a9837a95bcba973ed015d.zip SCons-28ad1a68eea6bb49178a9837a95bcba973ed015d.tar.gz SCons-28ad1a68eea6bb49178a9837a95bcba973ed015d.tar.bz2 |
Performance improvement: memo-ize Node.FS string values when appropriate.
Diffstat (limited to 'src/engine/SCons/Builder.py')
-rw-r--r-- | src/engine/SCons/Builder.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py index 5971056..4bca1c8 100644 --- a/src/engine/SCons/Builder.py +++ b/src/engine/SCons/Builder.py @@ -667,9 +667,18 @@ class MultiStepBuilder(BuilderBase): src_suffixes = self.src_suffixes(env) for snode in slist: - base, ext = self.splitext(str(snode)) - if sdict.has_key(ext): - tgt = sdict[ext]._execute(env, None, snode, overwarn) + try: + get_suffix = snode.get_suffix + except AttributeError: + ext = self.splitext(str(snode)) + else: + ext = get_suffix() + try: + subsidiary_builder = sdict[ext] + except KeyError: + final_sources.append(snode) + else: + tgt = subsidiary_builder._execute(env, None, snode, overwarn) # Only supply the builder with sources it is capable # of building. if SCons.Util.is_List(tgt): @@ -680,8 +689,6 @@ class MultiStepBuilder(BuilderBase): final_sources.append(tgt) else: final_sources.extend(tgt) - else: - final_sources.append(snode) return BuilderBase._execute(self, env, target, final_sources, overwarn) |