summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ulyana Trafimovich <skvadrik@google.com> 2021-07-16 09:37:00 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2021-07-16 09:37:00 +0000
commit9cb1577ac71ce2db15600c8f9e39e047ab5b5637 (patch)
treeeb57ce29848489dec9e3936902d5de5816e0d0c1
parent51736b82fcf4bdc28e54018aef6adaead8c13575 (diff)
parent2444671b4a4653e1e087ea700fbde0f6ffb005ea (diff)
Merge "Refactor function to reduce nestedness level. No functional changes."
-rwxr-xr-xjava/app.go60
1 files changed, 33 insertions, 27 deletions
diff --git a/java/app.go b/java/app.go
index fc6e183e6..d464e38c0 100755
--- a/java/app.go
+++ b/java/app.go
@@ -1245,37 +1245,43 @@ func replaceInList(list []string, oldstr, newstr string) {
}
}
-// Returns a map of module names of shared library dependencies to the paths
-// to their dex jars on host and on device.
+// Returns a map of module names of shared library dependencies to the paths to their dex jars on
+// host and on device.
func (u *usesLibrary) classLoaderContextForUsesLibDeps(ctx android.ModuleContext) dexpreopt.ClassLoaderContextMap {
clcMap := make(dexpreopt.ClassLoaderContextMap)
- // Skip when UnbundledBuild() is true, but UnbundledBuildImage() is false.
- // Added UnbundledBuildImage() condition to generate dexpreopt.config even though unbundled image is built.
- if !ctx.Config().UnbundledBuild() || ctx.Config().UnbundledBuildImage() {
- ctx.VisitDirectDeps(func(m android.Module) {
- if tag, ok := ctx.OtherModuleDependencyTag(m).(usesLibraryDependencyTag); ok {
- dep := ctx.OtherModuleName(m)
- if lib, ok := m.(UsesLibraryDependency); ok {
- libName := android.RemoveOptionalPrebuiltPrefix(dep)
- if ulib, ok := m.(ProvidesUsesLib); ok && ulib.ProvidesUsesLib() != nil {
- libName = android.RemoveOptionalPrebuiltPrefix(*ulib.ProvidesUsesLib())
- // Replace module name with library name in `uses_libs`/`optional_uses_libs`
- // in order to pass verify_uses_libraries check (which compares these
- // properties against library names written in the manifest).
- replaceInList(u.usesLibraryProperties.Uses_libs, dep, libName)
- replaceInList(u.usesLibraryProperties.Optional_uses_libs, dep, libName)
- }
- clcMap.AddContext(ctx, tag.sdkVersion, libName,
- lib.DexJarBuildPath(), lib.DexJarInstallPath(), lib.ClassLoaderContexts())
- } else if ctx.Config().AllowMissingDependencies() {
- ctx.AddMissingDependencies([]string{dep})
- } else {
- ctx.ModuleErrorf("module %q in uses_libs or optional_uses_libs must be a java library", dep)
- }
- }
- })
+
+ // Skip when UnbundledBuild() is true, but UnbundledBuildImage() is false. With
+ // UnbundledBuildImage() it is necessary to generate dexpreopt.config for post-dexpreopting.
+ if ctx.Config().UnbundledBuild() && !ctx.Config().UnbundledBuildImage() {
+ return clcMap
}
+ ctx.VisitDirectDeps(func(m android.Module) {
+ tag, isUsesLibTag := ctx.OtherModuleDependencyTag(m).(usesLibraryDependencyTag)
+ if !isUsesLibTag {
+ return
+ }
+
+ dep := ctx.OtherModuleName(m)
+
+ if lib, ok := m.(UsesLibraryDependency); ok {
+ libName := android.RemoveOptionalPrebuiltPrefix(dep)
+ if ulib, ok := m.(ProvidesUsesLib); ok && ulib.ProvidesUsesLib() != nil {
+ libName = android.RemoveOptionalPrebuiltPrefix(*ulib.ProvidesUsesLib())
+ // Replace module name with library name in `uses_libs`/`optional_uses_libs` in
+ // order to pass verify_uses_libraries check (which compares these properties
+ // against library names written in the manifest).
+ replaceInList(u.usesLibraryProperties.Uses_libs, dep, libName)
+ replaceInList(u.usesLibraryProperties.Optional_uses_libs, dep, libName)
+ }
+ clcMap.AddContext(ctx, tag.sdkVersion, libName,
+ lib.DexJarBuildPath(), lib.DexJarInstallPath(), lib.ClassLoaderContexts())
+ } else if ctx.Config().AllowMissingDependencies() {
+ ctx.AddMissingDependencies([]string{dep})
+ } else {
+ ctx.ModuleErrorf("module %q in uses_libs or optional_uses_libs must be a java library", dep)
+ }
+ })
return clcMap
}