From a78f3a7360336cd8a9245d2242dbbb8d84971ba7 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Fri, 21 Feb 2020 16:29:35 +0000 Subject: [PATCH] Prune any empty property sets from the modules before transforming Ensures that the generated prebuilt modules do not contain empty property sets. Bug: 148933848 Test: m nothing Change-Id: I99d5da1c4e3a72836e81e021ef043df53888e66b --- sdk/update.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sdk/update.go b/sdk/update.go index c64995f46..d211e80d7 100644 --- a/sdk/update.go +++ b/sdk/update.go @@ -241,6 +241,9 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext) android.OutputPath { unversionedTransformer := unversionedTransformation{builder: builder} for _, unversioned := range builder.prebuiltOrder { + // Prune any empty property sets. + unversioned = unversioned.transform(pruneEmptySetTransformer{}) + // Copy the unversioned module so it can be modified to make it versioned. versioned := unversioned.deepCopy() @@ -389,6 +392,20 @@ func (t unversionedTransformation) transformProperty(name string, value interfac } } +type pruneEmptySetTransformer struct { + identityTransformation +} + +var _ bpTransformer = (*pruneEmptySetTransformer)(nil) + +func (t pruneEmptySetTransformer) transformPropertySetAfterContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) { + if len(propertySet.properties) == 0 { + return nil, nil + } else { + return propertySet, tag + } +} + func generateBpContents(contents *generatedContents, bpFile *bpFile) { contents.Printfln("// This is auto-generated. DO NOT EDIT.") for _, bpModule := range bpFile.order {