From 8bf14fcb89c300143dda1b8b5ce6ff8d28583109 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 25 Sep 2024 16:41:31 -0700 Subject: Allow WalkPayloadDeps to be called from mutators Replace ModuleContext with BaseModuleContext in WalkPayloadDeps and all of the callbacks used with it to allow using WalkPayloadDeps from mutators. Test: builds Flag: EXEMPT refactor Change-Id: Ie9d6cb7e9977b1d963cfbb3e43d6749307b4b1e0 --- android/apex.go | 6 +++--- apex/apex.go | 6 +++--- apex/builder.go | 2 +- java/app.go | 4 ++-- java/sdk_library.go | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/android/apex.go b/android/apex.go index 114fe2988..79ab13caf 100644 --- a/android/apex.go +++ b/android/apex.go @@ -989,8 +989,8 @@ func (d *ApexBundleDepsInfo) BuildDepsInfoLists(ctx ModuleContext, minSdkVersion // Function called while walking an APEX's payload dependencies. // // Return true if the `to` module should be visited, false otherwise. -type PayloadDepsCallback func(ctx ModuleContext, from blueprint.Module, to ApexModule, externalDep bool) bool -type WalkPayloadDepsFunc func(ctx ModuleContext, do PayloadDepsCallback) +type PayloadDepsCallback func(ctx BaseModuleContext, from blueprint.Module, to ApexModule, externalDep bool) bool +type WalkPayloadDepsFunc func(ctx BaseModuleContext, do PayloadDepsCallback) // ModuleWithMinSdkVersionCheck represents a module that implements min_sdk_version checks type ModuleWithMinSdkVersionCheck interface { @@ -1017,7 +1017,7 @@ func CheckMinSdkVersion(ctx ModuleContext, minSdkVersion ApiLevel, walk WalkPayl return } - walk(ctx, func(ctx ModuleContext, from blueprint.Module, to ApexModule, externalDep bool) bool { + walk(ctx, func(ctx BaseModuleContext, from blueprint.Module, to ApexModule, externalDep bool) bool { if externalDep { // external deps are outside the payload boundary, which is "stable" // interface. We don't have to check min_sdk_version for external diff --git a/apex/apex.go b/apex/apex.go index df80b3a80..ff39597ea 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -1814,7 +1814,7 @@ func apexFileForFilesystem(ctx android.BaseModuleContext, buildFile android.Path // visited module, the `do` callback is executed. Returning true in the callback continues the visit // to the child modules. Returning false makes the visit to continue in the sibling or the parent // modules. This is used in check* functions below. -func (a *apexBundle) WalkPayloadDeps(ctx android.ModuleContext, do android.PayloadDepsCallback) { +func (a *apexBundle) WalkPayloadDeps(ctx android.BaseModuleContext, do android.PayloadDepsCallback) { ctx.WalkDeps(func(child, parent android.Module) bool { am, ok := child.(android.ApexModule) if !ok || !am.CanHaveApexVariants() { @@ -2660,7 +2660,7 @@ func (a *apexBundle) checkStaticLinkingToStubLibraries(ctx android.ModuleContext abInfo, _ := android.ModuleProvider(ctx, android.ApexBundleInfoProvider) - a.WalkPayloadDeps(ctx, func(ctx android.ModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { + a.WalkPayloadDeps(ctx, func(ctx android.BaseModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { if ccm, ok := to.(*cc.Module); ok { apexName := ctx.ModuleName() fromName := ctx.OtherModuleName(from) @@ -2766,7 +2766,7 @@ func (a *apexBundle) checkApexAvailability(ctx android.ModuleContext) { return } - a.WalkPayloadDeps(ctx, func(ctx android.ModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { + a.WalkPayloadDeps(ctx, func(ctx android.BaseModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { // As soon as the dependency graph crosses the APEX boundary, don't go further. if externalDep { return false diff --git a/apex/builder.go b/apex/builder.go index 5ddbc1861..da9e47ea3 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -1091,7 +1091,7 @@ func (a *apexBundle) buildApexDependencyInfo(ctx android.ModuleContext) { } depInfos := android.DepNameToDepInfoMap{} - a.WalkPayloadDeps(ctx, func(ctx android.ModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { + a.WalkPayloadDeps(ctx, func(ctx android.BaseModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { if from.Name() == to.Name() { // This can happen for cc.reuseObjTag. We are not interested in tracking this. // As soon as the dependency graph crosses the APEX boundary, don't go further. diff --git a/java/app.go b/java/app.go index 4ac42a750..659a3a4ce 100644 --- a/java/app.go +++ b/java/app.go @@ -1135,7 +1135,7 @@ func collectJniDeps(ctx android.ModuleContext, return jniLibs, prebuiltJniPackages } -func (a *AndroidApp) WalkPayloadDeps(ctx android.ModuleContext, do android.PayloadDepsCallback) { +func (a *AndroidApp) WalkPayloadDeps(ctx android.BaseModuleContext, do android.PayloadDepsCallback) { ctx.WalkDeps(func(child, parent android.Module) bool { isExternal := !a.DepIsInSameApex(ctx, child) if am, ok := child.(android.ApexModule); ok { @@ -1153,7 +1153,7 @@ func (a *AndroidApp) buildAppDependencyInfo(ctx android.ModuleContext) { } depsInfo := android.DepNameToDepInfoMap{} - a.WalkPayloadDeps(ctx, func(ctx android.ModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { + a.WalkPayloadDeps(ctx, func(ctx android.BaseModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { depName := to.Name() // Skip dependencies that are only available to APEXes; they are developed with updatability diff --git a/java/sdk_library.go b/java/sdk_library.go index 5deb49fe7..9cd07d0a8 100644 --- a/java/sdk_library.go +++ b/java/sdk_library.go @@ -1376,7 +1376,7 @@ func (module *SdkLibrary) CheckMinSdkVersion(ctx android.ModuleContext) { } func CheckMinSdkVersion(ctx android.ModuleContext, module *Library) { - android.CheckMinSdkVersion(ctx, module.MinSdkVersion(ctx), func(c android.ModuleContext, do android.PayloadDepsCallback) { + android.CheckMinSdkVersion(ctx, module.MinSdkVersion(ctx), func(c android.BaseModuleContext, do android.PayloadDepsCallback) { ctx.WalkDeps(func(child android.Module, parent android.Module) bool { isExternal := !module.depIsInSameApex(ctx, child) if am, ok := child.(android.ApexModule); ok { -- cgit v1.2.3-59-g8ed1b