summaryrefslogtreecommitdiff
path: root/java/sdk_library.go
diff options
context:
space:
mode:
author Paul Duffin <paulduffin@google.com> 2022-01-27 16:39:06 +0000
committer Paul Duffin <paulduffin@google.com> 2022-02-10 17:29:58 +0000
commit56f266d22c8f3740961ef8c5825d0c2d3419e66e (patch)
tree5a693b82ae3dc439bc439d55d5f4a62fb7249aa4 /java/sdk_library.go
parent2f94ca54755e5e5a8dca35d71a40dc7455804f0f (diff)
Allow pruning of unsupported fields in structs in maps
Adds support for traversing into a field that is of type: map[...]*struct{...} This is needed to allow java_sdk_library to mark scope specific properties, e.g. public.annotations as being target build release specific. It was necessary to change the Scope field from: Scope map[*apiScope]scopeProperties to: Scope map[*apiScope]*scopeProperties That is because there is no way in go to change the field of a struct value of a map. i.e. you cannot do the following, not even using reflection: Scope[apiScopePublic].AnnotationsZip = nil Bug: 204763318 Test: m nothing Merged-In: Id103f70f55d4202971321ef4925cbec4b55f8136 Change-Id: Id103f70f55d4202971321ef4925cbec4b55f8136 (cherry picked from commit 106a3a4bec44f8d1120f72dc52f6d2c797f3a80e)
Diffstat (limited to 'java/sdk_library.go')
-rw-r--r--java/sdk_library.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/java/sdk_library.go b/java/sdk_library.go
index c6747c730..1ae5535da 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -2536,7 +2536,7 @@ type sdkLibrarySdkMemberProperties struct {
android.SdkMemberPropertiesBase
// Scope to per scope properties.
- Scopes map[*apiScope]scopeProperties
+ Scopes map[*apiScope]*scopeProperties
// The Java stubs source files.
Stub_srcs []string
@@ -2569,7 +2569,7 @@ type scopeProperties struct {
func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) {
sdk := variant.(*SdkLibrary)
- s.Scopes = make(map[*apiScope]scopeProperties)
+ s.Scopes = make(map[*apiScope]*scopeProperties)
for _, apiScope := range allApiScopes {
paths := sdk.findScopePaths(apiScope)
if paths == nil {
@@ -2592,7 +2592,7 @@ func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMembe
if paths.annotationsZip.Valid() {
properties.AnnotationsZip = paths.annotationsZip.Path()
}
- s.Scopes[apiScope] = properties
+ s.Scopes[apiScope] = &properties
}
}