diff options
author | 2025-02-11 14:25:22 -0800 | |
---|---|---|
committer | 2025-02-11 16:06:22 -0800 | |
commit | 0496b1095c8d27c90a49f189c724854c6c5947da (patch) | |
tree | c4e8655c6b19ef093d2733220a01a06344c50211 | |
parent | e27e4bf70783c0d7fecfc27a06d2902c5225b2a8 (diff) |
Use blueprint/pool
Use blueprint's typesafe sync.Pool.
Test: builds
Change-Id: I3de1c455f229eb23ac3ca3dc0baa3bdd7bc0d5d6
-rw-r--r-- | android/Android.bp | 1 | ||||
-rw-r--r-- | android/mutator.go | 19 | ||||
-rw-r--r-- | android/transition.go | 4 |
3 files changed, 9 insertions, 15 deletions
diff --git a/android/Android.bp b/android/Android.bp index 540d65bd4..aef18fec0 100644 --- a/android/Android.bp +++ b/android/Android.bp @@ -11,6 +11,7 @@ bootstrap_go_package { "blueprint-depset", "blueprint-gobtools", "blueprint-metrics", + "blueprint-pool", "sbox_proto", "soong", "soong-android_team_proto", diff --git a/android/mutator.go b/android/mutator.go index d6166d2de..12861c074 100644 --- a/android/mutator.go +++ b/android/mutator.go @@ -15,9 +15,8 @@ package android import ( - "sync" - "github.com/google/blueprint" + "github.com/google/blueprint/pool" ) // Phases: @@ -272,15 +271,9 @@ type BottomUpMutatorContext interface { // 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{} }, - } - incomingTransitionContextPool = sync.Pool{ - New: func() any { return &incomingTransitionContextImpl{} }, - } - bottomUpMutatorContextPool = sync.Pool{ - New: func() any { return &bottomUpMutatorContext{} }, - } + outgoingTransitionContextPool = pool.New[outgoingTransitionContextImpl]() + incomingTransitionContextPool = pool.New[incomingTransitionContextImpl]() + bottomUpMutatorContextPool = pool.New[bottomUpMutatorContext]() ) type bottomUpMutatorContext struct { @@ -291,10 +284,10 @@ type bottomUpMutatorContext struct { // callers must immediately follow the call to this function with defer bottomUpMutatorContextPool.Put(mctx). func bottomUpMutatorContextFactory(ctx blueprint.BottomUpMutatorContext, a Module, - finalPhase bool) BottomUpMutatorContext { + finalPhase bool) *bottomUpMutatorContext { moduleContext := a.base().baseModuleContextFactory(ctx) - mctx := bottomUpMutatorContextPool.Get().(*bottomUpMutatorContext) + mctx := bottomUpMutatorContextPool.Get() *mctx = bottomUpMutatorContext{ bp: ctx, baseModuleContext: moduleContext, diff --git a/android/transition.go b/android/transition.go index e1aa891d1..0677ca1dd 100644 --- a/android/transition.go +++ b/android/transition.go @@ -197,7 +197,7 @@ func (a *androidTransitionMutatorAdapter) Split(ctx blueprint.BaseModuleContext) func (a *androidTransitionMutatorAdapter) OutgoingTransition(bpctx blueprint.OutgoingTransitionContext, sourceTransitionInfo blueprint.TransitionInfo) blueprint.TransitionInfo { m := bpctx.Module().(Module) - ctx := outgoingTransitionContextPool.Get().(*outgoingTransitionContextImpl) + ctx := outgoingTransitionContextPool.Get() defer outgoingTransitionContextPool.Put(ctx) *ctx = outgoingTransitionContextImpl{ archModuleContext: m.base().archModuleContextFactory(bpctx), @@ -209,7 +209,7 @@ func (a *androidTransitionMutatorAdapter) OutgoingTransition(bpctx blueprint.Out func (a *androidTransitionMutatorAdapter) IncomingTransition(bpctx blueprint.IncomingTransitionContext, incomingTransitionInfo blueprint.TransitionInfo) blueprint.TransitionInfo { m := bpctx.Module().(Module) - ctx := incomingTransitionContextPool.Get().(*incomingTransitionContextImpl) + ctx := incomingTransitionContextPool.Get() defer incomingTransitionContextPool.Put(ctx) *ctx = incomingTransitionContextImpl{ archModuleContext: m.base().archModuleContextFactory(bpctx), |