From af333f5aedcca722c96ba91a2fe66dcaef9edb47 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 15 Apr 2024 15:20:23 -0700 Subject: [PATCH] Support reading Providers from TransitionMutator IncomingTransition and OutgoingTransition Add a provider method to IncomingTransitionContext and OutgoingTransitionContext so they implement ModuleProviderContext and can be passed to android.ModuleProvider. Bug: 319288033 Test: go test ./... Change-Id: Ibf8b0feb78e4062fc044c321a23adcb68373e2f8 --- android/mutator.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/android/mutator.go b/android/mutator.go index ff6d86118..75ba65048 100644 --- a/android/mutator.go +++ b/android/mutator.go @@ -391,6 +391,7 @@ func (x *registerMutatorsContext) BottomUpBlueprint(name string, m blueprint.Bot type IncomingTransitionContext interface { ArchModuleContext + ModuleProviderContext // Module returns the target of the dependency edge for which the transition // is being computed @@ -404,6 +405,7 @@ type IncomingTransitionContext interface { type OutgoingTransitionContext interface { ArchModuleContext + ModuleProviderContext // Module returns the target of the dependency edge for which the transition // is being computed @@ -538,6 +540,10 @@ func (c *outgoingTransitionContextImpl) DeviceConfig() DeviceConfig { return DeviceConfig{c.bp.Config().(Config).deviceConfig} } +func (c *outgoingTransitionContextImpl) provider(provider blueprint.AnyProviderKey) (any, bool) { + return c.bp.Provider(provider) +} + func (a *androidTransitionMutator) OutgoingTransition(bpctx blueprint.OutgoingTransitionContext, sourceVariation string) string { if m, ok := bpctx.Module().(Module); ok { ctx := outgoingTransitionContextPool.Get().(*outgoingTransitionContextImpl) @@ -569,6 +575,10 @@ func (c *incomingTransitionContextImpl) DeviceConfig() DeviceConfig { return DeviceConfig{c.bp.Config().(Config).deviceConfig} } +func (c *incomingTransitionContextImpl) provider(provider blueprint.AnyProviderKey) (any, bool) { + return c.bp.Provider(provider) +} + func (a *androidTransitionMutator) IncomingTransition(bpctx blueprint.IncomingTransitionContext, incomingVariation string) string { if m, ok := bpctx.Module().(Module); ok { ctx := incomingTransitionContextPool.Get().(*incomingTransitionContextImpl)