Only register mutators once
Mutators are registered into a global variable, and then into the context when it is created. Only call registerMutators once so that the same mutator is not listed multiple times in the global variable when multiple contexts are created. Test: go test -v android/soong/android Change-Id: Ie9e3ed09a89b848462b898476cdfb81a90c64bd3
This commit is contained in:
parent
fc754581fc
commit
4498afc55b
1 changed files with 8 additions and 2 deletions
|
@ -14,7 +14,11 @@
|
|||
|
||||
package android
|
||||
|
||||
import "github.com/google/blueprint"
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
type moduleType struct {
|
||||
name string
|
||||
|
@ -47,6 +51,8 @@ func RegisterSingletonType(name string, factory blueprint.SingletonFactory) {
|
|||
singletons = append(singletons, singleton{name, factory})
|
||||
}
|
||||
|
||||
var registerMutatorsOnce sync.Once
|
||||
|
||||
func NewContext() *blueprint.Context {
|
||||
ctx := blueprint.NewContext()
|
||||
|
||||
|
@ -58,7 +64,7 @@ func NewContext() *blueprint.Context {
|
|||
ctx.RegisterSingletonType(t.name, t.factory)
|
||||
}
|
||||
|
||||
registerMutators()
|
||||
registerMutatorsOnce.Do(registerMutators)
|
||||
|
||||
for _, t := range mutators {
|
||||
var handle blueprint.MutatorHandle
|
||||
|
|
Loading…
Reference in a new issue