summaryrefslogtreecommitdiffstats
path: root/misc/ninja_syntax.py
diff options
context:
space:
mode:
authorDaniel Bratell <bratell@opera.com>2014-04-14 11:52:02 (GMT)
committerDaniel Bratell <bratell@opera.com>2014-04-14 11:52:02 (GMT)
commitcc533ecb298191eceb95a4edf8f1f6ac110e1f07 (patch)
tree48e92076f1331866b95fc06a4c347c67f471da90 /misc/ninja_syntax.py
parent6ecfd261701511ce71dbb7e1b7938e6007084f88 (diff)
downloadNinja-cc533ecb298191eceb95a4edf8f1f6ac110e1f07.zip
Ninja-cc533ecb298191eceb95a4edf8f1f6ac110e1f07.tar.gz
Ninja-cc533ecb298191eceb95a4edf8f1f6ac110e1f07.tar.bz2
performance: Writer.build should copy less.
The build method copies the input lists several times. That cost about 0.1s in the gyp generation for the Chromium project for no gain.
Diffstat (limited to 'misc/ninja_syntax.py')
-rw-r--r--misc/ninja_syntax.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/misc/ninja_syntax.py b/misc/ninja_syntax.py
index d69e3e4..4b9b547 100644
--- a/misc/ninja_syntax.py
+++ b/misc/ninja_syntax.py
@@ -61,16 +61,15 @@ class Writer(object):
def build(self, outputs, rule, inputs=None, implicit=None, order_only=None,
variables=None):
outputs = self._as_list(outputs)
- all_inputs = self._as_list(inputs)[:]
- out_outputs = list(map(escape_path, outputs))
- all_inputs = list(map(escape_path, all_inputs))
+ out_outputs = [escape_path(x) for x in outputs]
+ all_inputs = [escape_path(x) for x in self._as_list(inputs)]
if implicit:
- implicit = map(escape_path, self._as_list(implicit))
+ implicit = [escape_path(x) for x in self._as_list(implicit)]
all_inputs.append('|')
all_inputs.extend(implicit)
if order_only:
- order_only = map(escape_path, self._as_list(order_only))
+ order_only = [escape_path(x) for x in self._as_list(order_only)]
all_inputs.append('||')
all_inputs.extend(order_only)