Fix panic when a module has an invalid output path

dep.OutputFile().Path() can panic if the OutputFile
is invalid, so move more of the code into the check
for validity. This changes the go crash into a
build error.

Bug: 158624492
Test: Apply the patchset 1 of ag/11815659, lunch aosp_x86_64-eng, m
Change-Id: Ic8a728be1b570ac73be7b2b9461676f9fd99c266
This commit is contained in:
Cole Faust
2021-09-14 17:32:49 -07:00
parent 2551d2539e
commit 64cb7c964a

View File

@@ -760,18 +760,18 @@ func collectAppDeps(ctx android.ModuleContext, app appDepsInterface,
}
lib := dep.OutputFile()
path := lib.Path()
if seenModulePaths[path.String()] {
return false
}
seenModulePaths[path.String()] = true
if checkNativeSdkVersion && dep.SdkVersion() == "" {
ctx.PropertyErrorf("jni_libs", "JNI dependency %q uses platform APIs, but this module does not",
otherName)
}
if lib.Valid() {
path := lib.Path()
if seenModulePaths[path.String()] {
return false
}
seenModulePaths[path.String()] = true
if checkNativeSdkVersion && dep.SdkVersion() == "" {
ctx.PropertyErrorf("jni_libs", "JNI dependency %q uses platform APIs, but this module does not",
otherName)
}
jniLibs = append(jniLibs, jniLib{
name: ctx.OtherModuleName(module),
path: path,