Replace *[]string with []string in product variables

There is no need for *[]string, []string can already hold a nil
value to specify "not set".

Test: all soong tests
Change-Id: I85a51b042c12aee1565a9287d62924feeeafd486
This commit is contained in:
Colin Cross
2019-01-31 14:31:51 -08:00
parent 42b87a2e56
commit a74ca046da
5 changed files with 54 additions and 75 deletions

View File

@@ -1169,7 +1169,7 @@ func decodeTargetProductVariables(config *config) (map[OsType][]Target, error) {
targets := make(map[OsType][]Target)
var targetErr error
addTarget := func(os OsType, archName string, archVariant, cpuVariant *string, abi *[]string) {
addTarget := func(os OsType, archName string, archVariant, cpuVariant *string, abi []string) {
if targetErr != nil {
return
}
@@ -1358,7 +1358,7 @@ func decodeArchSettings(os OsType, archConfigs []archConfig) ([]Target, error) {
for _, config := range archConfigs {
arch, err := decodeArch(os, config.arch, &config.archVariant,
&config.cpuVariant, &config.abi)
&config.cpuVariant, config.abi)
if err != nil {
return nil, err
}
@@ -1373,7 +1373,7 @@ func decodeArchSettings(os OsType, archConfigs []archConfig) ([]Target, error) {
}
// Convert a set of strings from product variables into a single Arch struct
func decodeArch(os OsType, arch string, archVariant, cpuVariant *string, abi *[]string) (Arch, error) {
func decodeArch(os OsType, arch string, archVariant, cpuVariant *string, abi []string) (Arch, error) {
stringPtr := func(p *string) string {
if p != nil {
return *p
@@ -1381,13 +1381,6 @@ func decodeArch(os OsType, arch string, archVariant, cpuVariant *string, abi *[]
return ""
}
slicePtr := func(p *[]string) []string {
if p != nil {
return *p
}
return nil
}
archType, ok := archTypeMap[arch]
if !ok {
return Arch{}, fmt.Errorf("unknown arch %q", arch)
@@ -1397,7 +1390,7 @@ func decodeArch(os OsType, arch string, archVariant, cpuVariant *string, abi *[]
ArchType: archType,
ArchVariant: stringPtr(archVariant),
CpuVariant: stringPtr(cpuVariant),
Abi: slicePtr(abi),
Abi: abi,
Native: true,
}

View File

@@ -202,10 +202,10 @@ func TestConfig(buildDir string, env map[string]string) Config {
productVariables: productVariables{
DeviceName: stringPtr("test_device"),
Platform_sdk_version: intPtr(26),
AAPTConfig: &[]string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"},
AAPTConfig: []string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"},
AAPTPreferredConfig: stringPtr("xhdpi"),
AAPTCharacteristics: stringPtr("nosdcard"),
AAPTPrebuiltDPI: &[]string{"xhdpi", "xxhdpi"},
AAPTPrebuiltDPI: []string{"xhdpi", "xxhdpi"},
},
buildDir: buildDir,
@@ -476,10 +476,7 @@ func (c *config) DeviceName() string {
}
func (c *config) ResourceOverlays() []string {
if c.productVariables.ResourceOverlays == nil {
return nil
}
return *c.productVariables.ResourceOverlays
return c.productVariables.ResourceOverlays
}
func (c *config) PlatformVersionName() string {
@@ -544,7 +541,7 @@ func (c *config) PlatformVersionCombinedCodenames() []string {
}
func (c *config) ProductAAPTConfig() []string {
return stringSlice(c.productVariables.AAPTConfig)
return c.productVariables.AAPTConfig
}
func (c *config) ProductAAPTPreferredConfig() string {
@@ -556,7 +553,7 @@ func (c *config) ProductAAPTCharacteristics() string {
}
func (c *config) ProductAAPTPrebuiltDPI() []string {
return stringSlice(c.productVariables.AAPTPrebuiltDPI)
return c.productVariables.AAPTPrebuiltDPI
}
func (c *config) DefaultAppCertificateDir(ctx PathContext) SourcePath {
@@ -734,10 +731,10 @@ func (c *config) ArtUseReadBarrier() bool {
func (c *config) EnforceRROForModule(name string) bool {
enforceList := c.productVariables.EnforceRROTargets
if enforceList != nil {
if len(*enforceList) == 1 && (*enforceList)[0] == "*" {
if len(enforceList) == 1 && (enforceList)[0] == "*" {
return true
}
return InList(name, *enforceList)
return InList(name, enforceList)
}
return false
}
@@ -745,7 +742,7 @@ func (c *config) EnforceRROForModule(name string) bool {
func (c *config) EnforceRROExcludedOverlay(path string) bool {
excluded := c.productVariables.EnforceRROExcludedOverlays
if excluded != nil {
for _, exclude := range *excluded {
for _, exclude := range excluded {
if strings.HasPrefix(path, exclude) {
return true
}
@@ -830,10 +827,7 @@ func (c *deviceConfig) ExtraVndkVersions() []string {
}
func (c *deviceConfig) SystemSdkVersions() []string {
if c.config.productVariables.DeviceSystemSdkVersions == nil {
return nil
}
return *c.config.productVariables.DeviceSystemSdkVersions
return c.config.productVariables.DeviceSystemSdkVersions
}
func (c *deviceConfig) PlatformSystemSdkVersions() []string {
@@ -876,12 +870,12 @@ func (c *deviceConfig) NativeCoverageEnabled() bool {
func (c *deviceConfig) CoverageEnabledForPath(path string) bool {
coverage := false
if c.config.productVariables.CoveragePaths != nil {
if PrefixInList(path, *c.config.productVariables.CoveragePaths) {
if PrefixInList(path, c.config.productVariables.CoveragePaths) {
coverage = true
}
}
if coverage && c.config.productVariables.CoverageExcludePaths != nil {
if PrefixInList(path, *c.config.productVariables.CoverageExcludePaths) {
if PrefixInList(path, c.config.productVariables.CoverageExcludePaths) {
coverage = false
}
}
@@ -962,28 +956,28 @@ func (c *config) IntegerOverflowDisabledForPath(path string) bool {
if c.productVariables.IntegerOverflowExcludePaths == nil {
return false
}
return PrefixInList(path, *c.productVariables.IntegerOverflowExcludePaths)
return PrefixInList(path, c.productVariables.IntegerOverflowExcludePaths)
}
func (c *config) CFIDisabledForPath(path string) bool {
if c.productVariables.CFIExcludePaths == nil {
return false
}
return PrefixInList(path, *c.productVariables.CFIExcludePaths)
return PrefixInList(path, c.productVariables.CFIExcludePaths)
}
func (c *config) CFIEnabledForPath(path string) bool {
if c.productVariables.CFIIncludePaths == nil {
return false
}
return PrefixInList(path, *c.productVariables.CFIIncludePaths)
return PrefixInList(path, c.productVariables.CFIIncludePaths)
}
func (c *config) XOMDisabledForPath(path string) bool {
if c.productVariables.XOMExcludePaths == nil {
return false
}
return PrefixInList(path, *c.productVariables.XOMExcludePaths)
return PrefixInList(path, c.productVariables.XOMExcludePaths)
}
func (c *config) VendorConfig(name string) VendorConfig {
@@ -1035,11 +1029,3 @@ func (c *config) HiddenAPIFlags() string {
func (c *config) HiddenAPIExtraAppUsageJars() []string {
return c.productVariables.HiddenAPIExtraAppUsageJars
}
func stringSlice(s *[]string) []string {
if s != nil {
return *s
} else {
return nil
}
}

View File

@@ -144,18 +144,18 @@ type productVariables struct {
Platform_vndk_version *string `json:",omitempty"`
Platform_systemsdk_versions []string `json:",omitempty"`
DeviceName *string `json:",omitempty"`
DeviceArch *string `json:",omitempty"`
DeviceArchVariant *string `json:",omitempty"`
DeviceCpuVariant *string `json:",omitempty"`
DeviceAbi *[]string `json:",omitempty"`
DeviceVndkVersion *string `json:",omitempty"`
DeviceSystemSdkVersions *[]string `json:",omitempty"`
DeviceName *string `json:",omitempty"`
DeviceArch *string `json:",omitempty"`
DeviceArchVariant *string `json:",omitempty"`
DeviceCpuVariant *string `json:",omitempty"`
DeviceAbi []string `json:",omitempty"`
DeviceVndkVersion *string `json:",omitempty"`
DeviceSystemSdkVersions []string `json:",omitempty"`
DeviceSecondaryArch *string `json:",omitempty"`
DeviceSecondaryArchVariant *string `json:",omitempty"`
DeviceSecondaryCpuVariant *string `json:",omitempty"`
DeviceSecondaryAbi *[]string `json:",omitempty"`
DeviceSecondaryArch *string `json:",omitempty"`
DeviceSecondaryArchVariant *string `json:",omitempty"`
DeviceSecondaryCpuVariant *string `json:",omitempty"`
DeviceSecondaryAbi []string `json:",omitempty"`
HostArch *string `json:",omitempty"`
HostSecondaryArch *string `json:",omitempty"`
@@ -164,14 +164,14 @@ type productVariables struct {
CrossHostArch *string `json:",omitempty"`
CrossHostSecondaryArch *string `json:",omitempty"`
ResourceOverlays *[]string `json:",omitempty"`
EnforceRROTargets *[]string `json:",omitempty"`
EnforceRROExcludedOverlays *[]string `json:",omitempty"`
ResourceOverlays []string `json:",omitempty"`
EnforceRROTargets []string `json:",omitempty"`
EnforceRROExcludedOverlays []string `json:",omitempty"`
AAPTCharacteristics *string `json:",omitempty"`
AAPTConfig *[]string `json:",omitempty"`
AAPTPreferredConfig *string `json:",omitempty"`
AAPTPrebuiltDPI *[]string `json:",omitempty"`
AAPTCharacteristics *string `json:",omitempty"`
AAPTConfig []string `json:",omitempty"`
AAPTPreferredConfig *string `json:",omitempty"`
AAPTPrebuiltDPI []string `json:",omitempty"`
DefaultAppCertificate *string `json:",omitempty"`
@@ -207,14 +207,14 @@ type productVariables struct {
DisableDexPreoptModules []string `json:",omitempty"`
DexPreoptProfileDir *string `json:",omitempty"`
IntegerOverflowExcludePaths *[]string `json:",omitempty"`
IntegerOverflowExcludePaths []string `json:",omitempty"`
EnableCFI *bool `json:",omitempty"`
CFIExcludePaths *[]string `json:",omitempty"`
CFIIncludePaths *[]string `json:",omitempty"`
EnableCFI *bool `json:",omitempty"`
CFIExcludePaths []string `json:",omitempty"`
CFIIncludePaths []string `json:",omitempty"`
EnableXOM *bool `json:",omitempty"`
XOMExcludePaths *[]string `json:",omitempty"`
EnableXOM *bool `json:",omitempty"`
XOMExcludePaths []string `json:",omitempty"`
VendorPath *string `json:",omitempty"`
OdmPath *string `json:",omitempty"`
@@ -224,9 +224,9 @@ type productVariables struct {
ClangTidy *bool `json:",omitempty"`
TidyChecks *string `json:",omitempty"`
NativeCoverage *bool `json:",omitempty"`
CoveragePaths *[]string `json:",omitempty"`
CoverageExcludePaths *[]string `json:",omitempty"`
NativeCoverage *bool `json:",omitempty"`
CoveragePaths []string `json:",omitempty"`
CoverageExcludePaths []string `json:",omitempty"`
DevicePrefer32BitApps *bool `json:",omitempty"`
DevicePrefer32BitExecutables *bool `json:",omitempty"`
@@ -306,16 +306,16 @@ func (v *productVariables) SetDefaultConfig() {
DeviceArch: stringPtr("arm64"),
DeviceArchVariant: stringPtr("armv8-a"),
DeviceCpuVariant: stringPtr("generic"),
DeviceAbi: &[]string{"arm64-v8a"},
DeviceAbi: []string{"arm64-v8a"},
DeviceSecondaryArch: stringPtr("arm"),
DeviceSecondaryArchVariant: stringPtr("armv8-a"),
DeviceSecondaryCpuVariant: stringPtr("generic"),
DeviceSecondaryAbi: &[]string{"armeabi-v7a", "armeabi"},
DeviceSecondaryAbi: []string{"armeabi-v7a", "armeabi"},
AAPTConfig: &[]string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"},
AAPTConfig: []string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"},
AAPTPreferredConfig: stringPtr("xhdpi"),
AAPTCharacteristics: stringPtr("nosdcard"),
AAPTPrebuiltDPI: &[]string{"xhdpi", "xxhdpi"},
AAPTPrebuiltDPI: []string{"xhdpi", "xxhdpi"},
Malloc_not_svelte: boolPtr(true),
Safestack: boolPtr(false),

View File

@@ -199,12 +199,12 @@ func TestEnforceRRO(t *testing.T) {
for _, testCase := range testEnforceRROTests {
t.Run(testCase.name, func(t *testing.T) {
config := testConfig(nil)
config.TestProductVariables.ResourceOverlays = &resourceOverlays
config.TestProductVariables.ResourceOverlays = resourceOverlays
if testCase.enforceRROTargets != nil {
config.TestProductVariables.EnforceRROTargets = &testCase.enforceRROTargets
config.TestProductVariables.EnforceRROTargets = testCase.enforceRROTargets
}
if testCase.enforceRROExcludedOverlays != nil {
config.TestProductVariables.EnforceRROExcludedOverlays = &testCase.enforceRROExcludedOverlays
config.TestProductVariables.EnforceRROExcludedOverlays = testCase.enforceRROExcludedOverlays
}
ctx := testAppContext(config, bp, fs)

View File

@@ -61,7 +61,7 @@ func testConfig(env map[string]string) android.Config {
env["ANDROID_JAVA8_HOME"] = "jdk8"
}
config := android.TestArchConfig(buildDir, env)
config.TestProductVariables.DeviceSystemSdkVersions = &[]string{"14", "15"}
config.TestProductVariables.DeviceSystemSdkVersions = []string{"14", "15"}
return config
}