Change the type of parameter prevVersion to int in sourceAbiDump

Since the caller is doing Itoa and pass it into sourceAbiDump(), and
sourceAbiDump() is calling Atoi to convert it back, it makes sense to
not do the Itoa in the first place.

Test: make libz
Bug: 244009549
Change-Id: I61731a5eb442b5a1a8f50c820a673d9b2204c3a0
This commit is contained in:
Mu-Le Lee
2022-08-27 08:55:25 +00:00
parent f7d0b43782
commit 1304393b36
2 changed files with 19 additions and 20 deletions

View File

@@ -920,14 +920,14 @@ func unzipRefDump(ctx android.ModuleContext, zippedRefDump android.Path, baseNam
// sourceAbiDiff registers a build statement to compare linked sAbi dump files (.lsdump).
func sourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceDump android.Path,
baseName, prevVersion, exportedHeaderFlags string, diffFlags []string,
baseName, exportedHeaderFlags string, diffFlags []string, prevVersion int,
checkAllApis, isLlndk, isNdk, isVndkExt, previousVersionDiff bool) android.OptionalPath {
var outputFile android.ModuleOutPath
if prevVersion == "" {
outputFile = android.PathForModuleOut(ctx, baseName+".abidiff")
if previousVersionDiff {
outputFile = android.PathForModuleOut(ctx, baseName+"."+strconv.Itoa(prevVersion)+".abidiff")
} else {
outputFile = android.PathForModuleOut(ctx, baseName+"."+prevVersion+".abidiff")
outputFile = android.PathForModuleOut(ctx, baseName+".abidiff")
}
libName := strings.TrimSuffix(baseName, filepath.Ext(baseName))
@@ -946,12 +946,9 @@ func sourceAbiDiff(ctx android.ModuleContext, inputDump android.Path, referenceD
if previousVersionDiff {
// TODO(b/241496591): Remove -advice-only after b/239792343 and b/239790286 are reolved.
extraFlags = append(extraFlags, "-advice-only")
errorMessage = "error: Please follow development/vndk/tools/header-checker/README.md to ensure the ABI compatibility between your source code and version " + prevVersion + "."
// The prevVersion is expected as a string of int, skip it if not.
if prevVersionInt, err := strconv.Atoi(prevVersion); err == nil {
sourceVersion := strconv.Itoa(prevVersionInt + 1)
extraFlags = append(extraFlags, "-target-version", sourceVersion)
}
errorMessage = "error: Please follow development/vndk/tools/header-checker/README.md to ensure the ABI compatibility between your source code and version " + strconv.Itoa(prevVersion) + "."
sourceVersion := prevVersion + 1
extraFlags = append(extraFlags, "-target-version", strconv.Itoa(sourceVersion))
} else {
errorMessage = "error: Please update ABI references with: $ANDROID_BUILD_TOP/development/vndk/tools/header-checker/utils/create_reference_dumps.py -l " + libName
extraFlags = append(extraFlags, "-target-version", "current")

View File

@@ -1623,12 +1623,12 @@ func getRefAbiDumpFile(ctx ModuleContext, vndkVersion, fileName string) android.
return nil
}
func prevDumpRefVersion(ctx ModuleContext) string {
func prevDumpRefVersion(ctx ModuleContext) int {
sdkVersionInt := ctx.Config().PlatformSdkVersion().FinalInt()
sdkVersionStr := ctx.Config().PlatformSdkVersion().String()
if ctx.Config().PlatformSdkFinal() {
return strconv.Itoa(sdkVersionInt - 1)
return sdkVersionInt - 1
} else {
var dirName string
@@ -1644,9 +1644,9 @@ func prevDumpRefVersion(ctx ModuleContext) string {
// This situation could be identified by checking the existence of the PLATFORM_SDK_VERION dump directory.
refDumpDir := android.ExistentPathForSource(ctx, "prebuilts", "abi-dumps", dirName, sdkVersionStr)
if refDumpDir.Valid() {
return sdkVersionStr
return sdkVersionInt
} else {
return strconv.Itoa(sdkVersionInt - 1)
return sdkVersionInt - 1
}
}
}
@@ -1654,7 +1654,7 @@ func prevDumpRefVersion(ctx ModuleContext) string {
func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objects, fileName string, soFile android.Path) {
if library.sabi.shouldCreateSourceAbiDump() {
var version string
var prevVersion string
var prevVersion int
if ctx.useVndk() {
// For modules linking against vndk, follow its vndk version
@@ -1686,12 +1686,13 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec
addLsdumpPath(classifySourceAbiDump(ctx) + ":" + library.sAbiOutputFile.String())
if prevVersion != "" {
prevRefAbiDumpFile := getRefAbiDumpFile(ctx, prevVersion, fileName)
// If NDK or PLATFORM library, check against previous version ABI.
if !ctx.useVndk() {
prevRefAbiDumpFile := getRefAbiDumpFile(ctx, strconv.Itoa(prevVersion), fileName)
if prevRefAbiDumpFile != nil {
library.prevSAbiDiff = sourceAbiDiff(ctx, library.sAbiOutputFile.Path(),
prevRefAbiDumpFile, fileName, prevVersion, exportedHeaderFlags,
library.Properties.Header_abi_checker.Diff_flags,
prevRefAbiDumpFile, fileName, exportedHeaderFlags,
library.Properties.Header_abi_checker.Diff_flags, prevVersion,
Bool(library.Properties.Header_abi_checker.Check_all_apis),
ctx.IsLlndk(), ctx.isNdk(ctx.Config()), ctx.IsVndkExt(), true)
}
@@ -1700,8 +1701,9 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec
refAbiDumpFile := getRefAbiDumpFile(ctx, version, fileName)
if refAbiDumpFile != nil {
library.sAbiDiff = sourceAbiDiff(ctx, library.sAbiOutputFile.Path(),
refAbiDumpFile, fileName, "", exportedHeaderFlags,
refAbiDumpFile, fileName, exportedHeaderFlags,
library.Properties.Header_abi_checker.Diff_flags,
/* unused if not previousVersionDiff */ 0,
Bool(library.Properties.Header_abi_checker.Check_all_apis),
ctx.IsLlndk(), ctx.isNdk(ctx.Config()), ctx.IsVndkExt(), false)
}