From e42777a05a1f4bdde22b0dce03f3361e52e2dbae Mon Sep 17 00:00:00 2001 From: Nan Zhang Date: Tue, 27 Mar 2018 16:19:42 -0700 Subject: [PATCH] Fix the flaky build breakage for droiddoc target. ExpandSourcesSubDir was calling SourceFileProducer.Srcs(), and then doing: moduleSrcs = append(moduleSrcs[:j], moduleSrcs[j+1:]...) This modifies the backing store of the slice, which may affect the original data stored in the SourceFileProducer. Make all Srcs implementations return slice that points to a copy of the backing array. Test: m out/target/common/obj/PACKAGING/checkpublicapi-current-timestamp Bug: b/76179848 b/76397326 Change-Id: I2432ce196984814daafc5aa9a2746e81de74494c --- cc/compiler.go | 2 +- genrule/filegroup.go | 2 +- genrule/genrule.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cc/compiler.go b/cc/compiler.go index ffb834279..2ba19f1b7 100644 --- a/cc/compiler.go +++ b/cc/compiler.go @@ -183,7 +183,7 @@ type CompiledInterface interface { } func (compiler *baseCompiler) Srcs() android.Paths { - return compiler.srcs + return append(android.Paths{}, compiler.srcs...) } func (compiler *baseCompiler) appendCflags(flags []string) { diff --git a/genrule/filegroup.go b/genrule/filegroup.go index 9f4aa10d3..2cff5fee8 100644 --- a/genrule/filegroup.go +++ b/genrule/filegroup.go @@ -70,7 +70,7 @@ func (fg *fileGroup) GenerateAndroidBuildActions(ctx android.ModuleContext) { } func (fg *fileGroup) Srcs() android.Paths { - return fg.srcs + return append(android.Paths{}, fg.srcs...) } var androidMkTemplate = template.Must(template.New("filegroup").Parse(` diff --git a/genrule/genrule.go b/genrule/genrule.go index 0cd110ce6..42be88fe1 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -125,7 +125,7 @@ func (g *Module) GeneratedSourceFiles() android.Paths { } func (g *Module) Srcs() android.Paths { - return g.outputFiles + return append(android.Paths{}, g.outputFiles...) } func (g *Module) GeneratedHeaderDirs() android.Paths {