mirror of
https://github.com/ninja-build/ninja.git
synced 2026-08-07 16:42:10 +00:00
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.
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user