[go: nahoru, domu]

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