Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a78f3a73 authored by Paul Duffin's avatar Paul Duffin
Browse files

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
parent 64f54b0a
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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 {