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

Commit 5146e78c authored by Cole Faust's avatar Cole Faust
Browse files

Deny nil outputpaths

To prevent nils from permeating the rest of the codebase.

Bug: 379329165
Test: m nothing --no-skip-soong-tests
Change-Id: I3e789b6af0f101cf4bc0bd4666bf3a443f2f2c84
parent 80a4e453
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -831,6 +831,11 @@ func (m *moduleContext) ModuleInfoJSON() *ModuleInfoJSON {
}

func (m *moduleContext) SetOutputFiles(outputFiles Paths, tag string) {
	for _, outputFile := range outputFiles {
		if outputFile == nil {
			panic("outputfiles cannot be nil")
		}
	}
	if tag == "" {
		if len(m.outputFiles.DefaultOutputFiles) > 0 {
			m.ModuleErrorf("Module %s default OutputFiles cannot be overwritten", m.ModuleName())
+2 −3
Original line number Diff line number Diff line
@@ -508,12 +508,11 @@ func (p *prebuiltModule) Name() string {
}

func (p *prebuiltModule) GenerateAndroidBuildActions(ctx ModuleContext) {
	var src Path
	if len(p.properties.Srcs) >= 1 {
		src = p.prebuilt.SingleSourcePath(ctx)
	}
		src := p.prebuilt.SingleSourcePath(ctx)
		ctx.SetOutputFiles(Paths{src}, "")
	}
}

func (p *prebuiltModule) Prebuilt() *Prebuilt {
	return &p.prebuilt
+4 −4
Original line number Diff line number Diff line
@@ -714,10 +714,10 @@ func (j *Module) provideHiddenAPIPropertyInfo(ctx android.ModuleContext) {

// helper method for java modules to set OutputFilesProvider
func setOutputFiles(ctx android.ModuleContext, m Module) {
	ctx.SetOutputFiles(append(android.Paths{m.outputFile}, m.extraOutputFiles...), "")
	ctx.SetOutputFiles(android.Paths{m.outputFile}, android.DefaultDistTag)
	ctx.SetOutputFiles(android.Paths{m.implementationAndResourcesJar}, ".jar")
	ctx.SetOutputFiles(android.Paths{m.headerJarFile}, ".hjar")
	ctx.SetOutputFiles(append(android.PathsIfNonNil(m.outputFile), m.extraOutputFiles...), "")
	ctx.SetOutputFiles(android.PathsIfNonNil(m.outputFile), android.DefaultDistTag)
	ctx.SetOutputFiles(android.PathsIfNonNil(m.implementationAndResourcesJar), ".jar")
	ctx.SetOutputFiles(android.PathsIfNonNil(m.headerJarFile), ".hjar")
	if m.dexer.proguardDictionary.Valid() {
		ctx.SetOutputFiles(android.Paths{m.dexer.proguardDictionary.Path()}, ".proguard_map")
	}
+0 −1
Original line number Diff line number Diff line
@@ -578,7 +578,6 @@ func (j *Javadoc) GenerateAndroidBuildActions(ctx android.ModuleContext) {

	rule.Build("javadoc", "javadoc")

	ctx.SetOutputFiles(android.Paths{j.stubsSrcJar}, "")
	ctx.SetOutputFiles(android.Paths{j.docZip}, ".docs.zip")
}

+2 −2
Original line number Diff line number Diff line
@@ -1374,7 +1374,7 @@ func (d *Droidstubs) setOutputFiles(ctx android.ModuleContext) {
		for _, stubType := range android.SortedKeys(stubsTypeToPrefix) {
			tagWithPrefix := stubsTypeToPrefix[stubType] + tag
			outputFile, err := tagToOutputFileFunc[tag](stubType)
			if err == nil {
			if err == nil && outputFile != nil {
				ctx.SetOutputFiles(android.Paths{outputFile}, tagWithPrefix)
			}
		}