diff options
author | 2025-02-12 10:47:21 -0800 | |
---|---|---|
committer | 2025-02-12 10:47:21 -0800 | |
commit | a8a9cce15d6ba30819251934aea146d8797ea6bb (patch) | |
tree | 1efcc90c3914f1619a70801ea028a46554c600c5 | |
parent | d8db8faba62a3cb77f75294e96deda9e53c15786 (diff) | |
parent | a679277632b2a5a20796c6f243590d98c243205c (diff) |
Merge "Remove top down mutators" into main
-rw-r--r-- | android/mutator.go | 46 | ||||
-rw-r--r-- | android/mutator_test.go | 4 | ||||
-rw-r--r-- | android/provider.go | 24 | ||||
-rw-r--r-- | android/register.go | 1 |
4 files changed, 16 insertions, 59 deletions
diff --git a/android/mutator.go b/android/mutator.go index 76487fbad..d6166d2de 100644 --- a/android/mutator.go +++ b/android/mutator.go @@ -67,7 +67,6 @@ type registerMutatorsContext struct { } type RegisterMutatorsContext interface { - TopDown(name string, m TopDownMutator) MutatorHandle BottomUp(name string, m BottomUpMutator) MutatorHandle BottomUpBlueprint(name string, m blueprint.BottomUpMutator) MutatorHandle Transition(name string, m VariationTransitionMutator) TransitionMutatorHandle @@ -195,17 +194,6 @@ func FinalDepsMutators(f RegisterMutatorFunc) { finalDeps = append(finalDeps, f) } -type TopDownMutator func(TopDownMutatorContext) - -type TopDownMutatorContext interface { - BaseModuleContext -} - -type topDownMutatorContext struct { - bp blueprint.TopDownMutatorContext - baseModuleContext -} - type BottomUpMutator func(BottomUpMutatorContext) type BottomUpMutatorContext interface { @@ -281,8 +269,8 @@ type BottomUpMutatorContext interface { } // An outgoingTransitionContextImpl and incomingTransitionContextImpl is created for every dependency of every module -// for each transition mutator. bottomUpMutatorContext and topDownMutatorContext are created once for every module -// for every BottomUp or TopDown mutator. Use a global pool for each to avoid reallocating every time. +// for each transition mutator. bottomUpMutatorContext is created once for every module for every BottomUp mutator. +// Use a global pool for each to avoid reallocating every time. var ( outgoingTransitionContextPool = sync.Pool{ New: func() any { return &outgoingTransitionContextImpl{} }, @@ -293,10 +281,6 @@ var ( bottomUpMutatorContextPool = sync.Pool{ New: func() any { return &bottomUpMutatorContext{} }, } - - topDownMutatorContextPool = sync.Pool{ - New: func() any { return &topDownMutatorContext{} }, - } ) type bottomUpMutatorContext struct { @@ -371,24 +355,6 @@ func (x *registerMutatorsContext) mutatorName(name string) string { return name } -func (x *registerMutatorsContext) TopDown(name string, m TopDownMutator) MutatorHandle { - f := func(ctx blueprint.TopDownMutatorContext) { - if a, ok := ctx.Module().(Module); ok { - moduleContext := a.base().baseModuleContextFactory(ctx) - actx := topDownMutatorContextPool.Get().(*topDownMutatorContext) - defer topDownMutatorContextPool.Put(actx) - *actx = topDownMutatorContext{ - bp: ctx, - baseModuleContext: moduleContext, - } - m(actx) - } - } - mutator := &mutator{name: x.mutatorName(name), topDownMutator: f} - x.mutators = append(x.mutators, mutator) - return mutator -} - func (mutator *mutator) componentName() string { return mutator.name } @@ -398,8 +364,6 @@ func (mutator *mutator) register(ctx *Context) { var handle blueprint.MutatorHandle if mutator.bottomUpMutator != nil { handle = blueprintCtx.RegisterBottomUpMutator(mutator.name, mutator.bottomUpMutator) - } else if mutator.topDownMutator != nil { - handle = blueprintCtx.RegisterTopDownMutator(mutator.name, mutator.topDownMutator) } else if mutator.transitionMutator != nil { handle := blueprintCtx.RegisterTransitionMutator(mutator.name, mutator.transitionMutator) if mutator.neverFar { @@ -529,11 +493,11 @@ func registerDepsMutator(ctx RegisterMutatorsContext) { ctx.BottomUp("deps", depsMutator).UsesReverseDependencies() } -// android.topDownMutatorContext either has to embed blueprint.TopDownMutatorContext, in which case every method that +// android.bottomUpMutatorContext either has to embed blueprint.BottomUpMutatorContext, in which case every method that // has an overridden version in android.BaseModuleContext has to be manually forwarded to BaseModuleContext to avoid -// ambiguous method errors, or it has to store a blueprint.TopDownMutatorContext non-embedded, in which case every +// ambiguous method errors, or it has to store a blueprint.BottomUpMutatorContext non-embedded, in which case every // non-overridden method has to be forwarded. There are fewer non-overridden methods, so use the latter. The following -// methods forward to the identical blueprint versions for topDownMutatorContext and bottomUpMutatorContext. +// methods forward to the identical blueprint versions for bottomUpMutatorContext. func (b *bottomUpMutatorContext) Rename(name string) { b.bp.Rename(name) diff --git a/android/mutator_test.go b/android/mutator_test.go index 60a61199f..123c6b203 100644 --- a/android/mutator_test.go +++ b/android/mutator_test.go @@ -54,7 +54,7 @@ func (m *mutatorTestModule) DepsMutator(ctx BottomUpMutatorContext) { ctx.AddDependency(ctx.Module(), nil, m.props.Deps_missing_deps...) } -func addMissingDependenciesMutator(ctx TopDownMutatorContext) { +func addMissingDependenciesMutator(ctx BottomUpMutatorContext) { ctx.AddMissingDependencies(ctx.Module().(*mutatorTestModule).props.Mutator_missing_deps) } @@ -72,7 +72,7 @@ func TestMutatorAddMissingDependencies(t *testing.T) { FixtureRegisterWithContext(func(ctx RegistrationContext) { ctx.RegisterModuleType("test", mutatorTestModuleFactory) ctx.PreDepsMutators(func(ctx RegisterMutatorsContext) { - ctx.TopDown("add_missing_dependencies", addMissingDependenciesMutator) + ctx.BottomUp("add_missing_dependencies", addMissingDependenciesMutator) }) }), FixtureWithRootAndroidBp(bp), diff --git a/android/provider.go b/android/provider.go index 81d17a175..b48fd9148 100644 --- a/android/provider.go +++ b/android/provider.go @@ -4,8 +4,8 @@ import ( "github.com/google/blueprint" ) -// OtherModuleProviderContext is a helper interface that is a subset of ModuleContext, BottomUpMutatorContext, or -// TopDownMutatorContext for use in OtherModuleProvider. +// OtherModuleProviderContext is a helper interface that is a subset of ModuleContext or BottomUpMutatorContext +// for use in OtherModuleProvider. type OtherModuleProviderContext interface { otherModuleProvider(m blueprint.Module, provider blueprint.AnyProviderKey) (any, bool) } @@ -13,7 +13,6 @@ type OtherModuleProviderContext interface { var _ OtherModuleProviderContext = BaseModuleContext(nil) var _ OtherModuleProviderContext = ModuleContext(nil) var _ OtherModuleProviderContext = BottomUpMutatorContext(nil) -var _ OtherModuleProviderContext = TopDownMutatorContext(nil) var _ OtherModuleProviderContext = SingletonContext(nil) var _ OtherModuleProviderContext = (*TestContext)(nil) @@ -21,8 +20,7 @@ var _ OtherModuleProviderContext = (*TestContext)(nil) // returned and the boolean is true. If it has not been set the zero value of the provider's type is returned // and the boolean is false. The value returned may be a deep copy of the value originally passed to SetProvider. // -// OtherModuleProviderContext is a helper interface that accepts ModuleContext, BottomUpMutatorContext, or -// TopDownMutatorContext. +// OtherModuleProviderContext is a helper interface that accepts ModuleContext or BottomUpMutatorContext. func OtherModuleProvider[K any](ctx OtherModuleProviderContext, module blueprint.Module, provider blueprint.ProviderKey[K]) (K, bool) { value, ok := ctx.otherModuleProvider(getWrappedModule(module), provider) if !ok { @@ -37,8 +35,8 @@ func OtherModuleProviderOrDefault[K any](ctx OtherModuleProviderContext, module return value } -// ModuleProviderContext is a helper interface that is a subset of ModuleContext, BottomUpMutatorContext, or -// TopDownMutatorContext for use in ModuleProvider. +// ModuleProviderContext is a helper interface that is a subset of ModuleContext or BottomUpMutatorContext +// for use in ModuleProvider. type ModuleProviderContext interface { provider(provider blueprint.AnyProviderKey) (any, bool) } @@ -46,14 +44,12 @@ type ModuleProviderContext interface { var _ ModuleProviderContext = BaseModuleContext(nil) var _ ModuleProviderContext = ModuleContext(nil) var _ ModuleProviderContext = BottomUpMutatorContext(nil) -var _ ModuleProviderContext = TopDownMutatorContext(nil) // ModuleProvider reads the provider for the current module. If the provider has been set the value is // returned and the boolean is true. If it has not been set the zero value of the provider's type is returned // and the boolean is false. The value returned may be a deep copy of the value originally passed to SetProvider. // -// ModuleProviderContext is a helper interface that accepts ModuleContext, BottomUpMutatorContext, or -// TopDownMutatorContext. +// ModuleProviderContext is a helper interface that accepts ModuleContext or BottomUpMutatorContext. func ModuleProvider[K any](ctx ModuleProviderContext, provider blueprint.ProviderKey[K]) (K, bool) { value, ok := ctx.provider(provider) if !ok { @@ -63,8 +59,8 @@ func ModuleProvider[K any](ctx ModuleProviderContext, provider blueprint.Provide return value.(K), ok } -// SetProviderContext is a helper interface that is a subset of ModuleContext, BottomUpMutatorContext, or -// TopDownMutatorContext for use in SetProvider. +// SetProviderContext is a helper interface that is a subset of ModuleContext or BottomUpMutatorContext +// for use in SetProvider. type SetProviderContext interface { setProvider(provider blueprint.AnyProviderKey, value any) } @@ -72,15 +68,13 @@ type SetProviderContext interface { var _ SetProviderContext = BaseModuleContext(nil) var _ SetProviderContext = ModuleContext(nil) var _ SetProviderContext = BottomUpMutatorContext(nil) -var _ SetProviderContext = TopDownMutatorContext(nil) // SetProvider sets the value for a provider for the current module. It panics if not called // during the appropriate mutator or GenerateBuildActions pass for the provider, if the value // is not of the appropriate type, or if the value has already been set. The value should not // be modified after being passed to SetProvider. // -// SetProviderContext is a helper interface that accepts ModuleContext, BottomUpMutatorContext, or -// TopDownMutatorContext. +// SetProviderContext is a helper interface that accepts ModuleContext or BottomUpMutatorContext. func SetProvider[K any](ctx SetProviderContext, provider blueprint.ProviderKey[K], value K) { ctx.setProvider(provider, value) } diff --git a/android/register.go b/android/register.go index 332ec271c..10c9114f5 100644 --- a/android/register.go +++ b/android/register.go @@ -89,7 +89,6 @@ var singletons sortableComponents type mutator struct { name string bottomUpMutator blueprint.BottomUpMutator - topDownMutator blueprint.TopDownMutator transitionMutator blueprint.TransitionMutator usesRename bool |