siso: ninja addEdge not refer state bindings.
addEdge uses s.bindings for env, but env is updated for local env.
pass local env to addEdge and not refer s.bindings.
Change-Id: Ic041830f6363aaca92addf42e98010e698770912
Reviewed-on: https://chromium-review.googlesource.com/c/infra/infra/+/5679684
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Richard Wang <richardwa@google.com>
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Richard Wang <richardwa@google.com>
Cr-Commit-Position: refs/heads/main@{#66654}
diff --git a/go/src/infra/build/siso/toolsupport/ninjautil/manifest_parser.go b/go/src/infra/build/siso/toolsupport/ninjautil/manifest_parser.go
index c6bfd5c..ae24d93 100644
--- a/go/src/infra/build/siso/toolsupport/ninjautil/manifest_parser.go
+++ b/go/src/infra/build/siso/toolsupport/ninjautil/manifest_parser.go
@@ -290,8 +290,7 @@
// Finished parsing.
// Add a new Edge to current state and begin populating it.
- edge := p.state.addEdge(rule)
- edge.env = env
+ edge := p.state.addEdge(rule, env)
// Populate this Edge with the properties we collected above.
poolName := edge.Binding("pool")
diff --git a/go/src/infra/build/siso/toolsupport/ninjautil/state.go b/go/src/infra/build/siso/toolsupport/ninjautil/state.go
index b239170..3a07420 100644
--- a/go/src/infra/build/siso/toolsupport/ninjautil/state.go
+++ b/go/src/infra/build/siso/toolsupport/ninjautil/state.go
@@ -98,11 +98,11 @@
return m
}
-func (s *State) addEdge(rule *rule) *Edge {
+func (s *State) addEdge(rule *rule, env *BindingEnv) *Edge {
edge := &Edge{
rule: rule,
pool: defaultPool,
- env: s.bindings,
+ env: env,
}
s.edges = append(s.edges, edge)
return edge