diff options
| author | 2022-01-27 16:39:06 +0000 | |
|---|---|---|
| committer | 2022-02-10 17:29:58 +0000 | |
| commit | 56f266d22c8f3740961ef8c5825d0c2d3419e66e (patch) | |
| tree | 5a693b82ae3dc439bc439d55d5f4a62fb7249aa4 /java/sdk_library.go | |
| parent | 2f94ca54755e5e5a8dca35d71a40dc7455804f0f (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.go | 6 |
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 } } |