From 9a6f87ebd63af5de2b31ca59aec0f49bfae85622 Mon Sep 17 00:00:00 2001 From: satayev Date: Tue, 4 May 2021 16:14:48 +0100 Subject: [PATCH] Make SystemServerJars ConfiguredJarList. Consistent with plumbing of boot jars. SystemServerJars only support /system/framework/ jars. Bug: 180105615, 155630745 Test: m && launch_cvd Change-Id: I58b005b7c4103c8e250090e995b1d9b2f9ed4a76 --- dexpreopt/config.go | 4 ++-- dexpreopt/dexpreopt.go | 8 ++++---- java/dexpreopt.go | 2 +- java/dexpreopt_config.go | 7 +++---- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/dexpreopt/config.go b/dexpreopt/config.go index 739791968..24492d4ec 100644 --- a/dexpreopt/config.go +++ b/dexpreopt/config.go @@ -49,7 +49,7 @@ type GlobalConfig struct { ArtApexJars android.ConfiguredJarList // modules for jars that are in the ART APEX - SystemServerJars []string // jars that form the system server + SystemServerJars android.ConfiguredJarList // jars that form the system server SystemServerApps []string // apps that are loaded into system server UpdatableSystemServerJars android.ConfiguredJarList // jars within apex that are loaded into system server SpeedApps []string // apps that should be speed optimized @@ -604,7 +604,7 @@ func GlobalConfigForTests(ctx android.PathContext) *GlobalConfig { BootJars: android.EmptyConfiguredJarList(), UpdatableBootJars: android.EmptyConfiguredJarList(), ArtApexJars: android.EmptyConfiguredJarList(), - SystemServerJars: nil, + SystemServerJars: android.EmptyConfiguredJarList(), SystemServerApps: nil, UpdatableSystemServerJars: android.EmptyConfiguredJarList(), SpeedApps: nil, diff --git a/dexpreopt/dexpreopt.go b/dexpreopt/dexpreopt.go index 628197c93..c9a80f869 100644 --- a/dexpreopt/dexpreopt.go +++ b/dexpreopt/dexpreopt.go @@ -120,7 +120,7 @@ func dexpreoptDisabled(ctx android.PathContext, global *GlobalConfig, module *Mo // /data. If we don't do this they will need to be extracted which is not favorable for RAM usage // or performance. If PreoptExtractedApk is true, we ignore the only preopt boot image options. if global.OnlyPreoptBootImageAndSystemServer && !global.BootJars.ContainsJar(module.Name) && - !contains(global.SystemServerJars, module.Name) && !module.PreoptExtractedApk { + !global.SystemServerJars.ContainsJar(module.Name) && !module.PreoptExtractedApk { return true } @@ -362,7 +362,7 @@ func dexpreoptCommand(ctx android.PathContext, globalSoong *GlobalSoongConfig, g if !android.PrefixInList(preoptFlags, "--compiler-filter=") { var compilerFilter string - if contains(global.SystemServerJars, module.Name) { + if global.SystemServerJars.ContainsJar(module.Name) { // Jars of system server, use the product option if it is set, speed otherwise. if global.SystemServerCompilerFilter != "" { compilerFilter = global.SystemServerCompilerFilter @@ -416,7 +416,7 @@ func dexpreoptCommand(ctx android.PathContext, globalSoong *GlobalSoongConfig, g // PRODUCT_SYSTEM_SERVER_DEBUG_INFO overrides WITH_DEXPREOPT_DEBUG_INFO. // PRODUCT_OTHER_JAVA_DEBUG_INFO overrides WITH_DEXPREOPT_DEBUG_INFO. - if contains(global.SystemServerJars, module.Name) { + if global.SystemServerJars.ContainsJar(module.Name) { if global.AlwaysSystemServerDebugInfo { debugInfo = true } else if global.NeverSystemServerDebugInfo { @@ -524,7 +524,7 @@ var nonUpdatableSystemServerJarsKey = android.NewOnceKey("nonUpdatableSystemServ // from java subpackage to dexpreopt. func NonUpdatableSystemServerJars(ctx android.PathContext, global *GlobalConfig) []string { return ctx.Config().Once(nonUpdatableSystemServerJarsKey, func() interface{} { - return android.RemoveListFromList(global.SystemServerJars, global.UpdatableSystemServerJars.CopyOfJars()) + return android.RemoveListFromList(global.SystemServerJars.CopyOfJars(), global.UpdatableSystemServerJars.CopyOfJars()) }).([]string) } diff --git a/java/dexpreopt.go b/java/dexpreopt.go index 0020a2d92..3113eb386 100644 --- a/java/dexpreopt.go +++ b/java/dexpreopt.go @@ -150,7 +150,7 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Wr global := dexpreopt.GetGlobalConfig(ctx) - isSystemServerJar := inList(ctx.ModuleName(), global.SystemServerJars) + isSystemServerJar := global.SystemServerJars.ContainsJar(ctx.ModuleName()) bootImage := defaultBootImageConfig(ctx) if global.UseArtImage { diff --git a/java/dexpreopt_config.go b/java/dexpreopt_config.go index 0ab650287..72b61e323 100644 --- a/java/dexpreopt_config.go +++ b/java/dexpreopt_config.go @@ -39,10 +39,9 @@ func systemServerClasspath(ctx android.PathContext) []string { // 2) The jars that are from an updatable apex. systemServerClasspathLocations = append(systemServerClasspathLocations, global.UpdatableSystemServerJars.DevicePaths(ctx.Config(), android.Android)...) - if len(systemServerClasspathLocations) != len(global.SystemServerJars)+global.UpdatableSystemServerJars.Len() { - panic(fmt.Errorf("Wrong number of system server jars, got %d, expected %d", - len(systemServerClasspathLocations), - len(global.SystemServerJars)+global.UpdatableSystemServerJars.Len())) + + if expectedLen := global.SystemServerJars.Len() + global.UpdatableSystemServerJars.Len(); expectedLen != len(systemServerClasspathLocations) { + panic(fmt.Errorf("wrong number of system server jars, got %d, expected %d", len(systemServerClasspathLocations), expectedLen)) } return systemServerClasspathLocations })