From 77965d9bd4dbec3301cae9b7ce548cb7bc43ef6b Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 15 Aug 2024 17:11:08 -0700 Subject: [PATCH] Convert more stored WritablePaths to Paths Similar to I40f28075ce151e4be80d6cfc7ec173dfa46f9bbf, convert more long-lived WritablePaths to Paths. Test: all soong tests pass Flag: EXEMPT refactor Change-Id: I9be448f811694fe0524fbbd7c5d4553cf69d533a --- java/aar.go | 14 ++++++++------ java/java.go | 29 ++++++++++++++++------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/java/aar.go b/java/aar.go index c8563c856..e6ad5022b 100644 --- a/java/aar.go +++ b/java/aar.go @@ -1154,8 +1154,9 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { if Bool(a.properties.Jetifier) { inputFile := a.aarPath - a.aarPath = android.PathForModuleOut(ctx, "jetifier", aarName) - TransformJetifier(ctx, a.aarPath.(android.WritablePath), inputFile) + jetifierPath := android.PathForModuleOut(ctx, "jetifier", aarName) + TransformJetifier(ctx, jetifierPath, inputFile) + a.aarPath = jetifierPath } jarName := ctx.ModuleName() + ".jar" @@ -1306,11 +1307,12 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { addMissingOptionalUsesLibsFromDep(ctx, module, &a.usesLibrary) }) - var implementationJarFile android.OutputPath + var implementationJarFile android.Path if len(staticJars) > 0 { combineJars := append(android.Paths{classpathFile}, staticJars...) - implementationJarFile = android.PathForModuleOut(ctx, "combined", jarName).OutputPath - TransformJarsToJar(ctx, implementationJarFile, "combine", combineJars, android.OptionalPath{}, false, nil, nil) + combinedImplementationJar := android.PathForModuleOut(ctx, "combined", jarName).OutputPath + TransformJarsToJar(ctx, combinedImplementationJar, "combine", combineJars, android.OptionalPath{}, false, nil, nil) + implementationJarFile = combinedImplementationJar } else { implementationJarFile = classpathFile } @@ -1329,7 +1331,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { implementationAndResourcesJar := implementationJarFile if resourceJarFile != nil { jars := android.Paths{resourceJarFile, implementationAndResourcesJar} - combinedJar := android.PathForModuleOut(ctx, "withres", jarName).OutputPath + combinedJar := android.PathForModuleOut(ctx, "withres", jarName) TransformJarsToJar(ctx, combinedJar, "for resources", jars, android.OptionalPath{}, false, nil, nil) implementationAndResourcesJar = combinedJar diff --git a/java/java.go b/java/java.go index 0d2704d24..85bc70c54 100644 --- a/java/java.go +++ b/java/java.go @@ -2664,43 +2664,46 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Always pass the input jars to TransformJarsToJar, even if there is only a single jar, we need the output // file of the module to be named jarName. - outputFile := android.PathForModuleOut(ctx, "combined", jarName) + var outputFile android.Path + combinedImplementationJar := android.PathForModuleOut(ctx, "combined", jarName) implementationJars := append(slices.Clone(jars), staticJars...) - TransformJarsToJar(ctx, outputFile, "combine prebuilt implementation jars", implementationJars, android.OptionalPath{}, + TransformJarsToJar(ctx, combinedImplementationJar, "combine prebuilt implementation jars", implementationJars, android.OptionalPath{}, false, j.properties.Exclude_files, j.properties.Exclude_dirs) + outputFile = combinedImplementationJar // If no dependencies have separate header jars then there is no need to create a separate // header jar for this module. reuseImplementationJarAsHeaderJar := slices.Equal(staticJars, staticHeaderJars) - var headerOutputFile android.ModuleOutPath + var headerJar android.Path if reuseImplementationJarAsHeaderJar { - headerOutputFile = outputFile + headerJar = outputFile } else { headerJars := append(slices.Clone(jars), staticHeaderJars...) - headerOutputFile = android.PathForModuleOut(ctx, "turbine-combined", jarName) + headerOutputFile := android.PathForModuleOut(ctx, "turbine-combined", jarName) TransformJarsToJar(ctx, headerOutputFile, "combine prebuilt header jars", headerJars, android.OptionalPath{}, false, j.properties.Exclude_files, j.properties.Exclude_dirs) + headerJar = headerOutputFile } if Bool(j.properties.Jetifier) { - inputFile := outputFile - outputFile = android.PathForModuleOut(ctx, "jetifier", jarName) - TransformJetifier(ctx, outputFile, inputFile) + jetifierOutputFile := android.PathForModuleOut(ctx, "jetifier", jarName) + TransformJetifier(ctx, jetifierOutputFile, outputFile) + outputFile = jetifierOutputFile if !reuseImplementationJarAsHeaderJar { - headerInputFile := headerOutputFile - headerOutputFile = android.PathForModuleOut(ctx, "jetifier-headers", jarName) - TransformJetifier(ctx, headerOutputFile, headerInputFile) + jetifierHeaderJar := android.PathForModuleOut(ctx, "jetifier-headers", jarName) + TransformJetifier(ctx, jetifierHeaderJar, headerJar) + headerJar = jetifierHeaderJar } else { - headerOutputFile = outputFile + headerJar = outputFile } } // Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource. // Also strip the relative path from the header output file so that the reuseImplementationJarAsHeaderJar check // in a module that depends on this module considers them equal. - j.combinedHeaderFile = headerOutputFile.WithoutRel() + j.combinedHeaderFile = headerJar.WithoutRel() j.combinedImplementationFile = outputFile.WithoutRel() j.maybeInstall(ctx, jarName, outputFile)