Debug.isVmapStack reads kernel configs only
... but not other runtime VINTF info. This may or may not fix the nullptr exception when accessing getRuntimeInfo(). In either case, this change should improves code health in general: - it avoids reading things it doesn't need - it avoids copying the map Bug: 151092221 Test: m libandroid_runtime -j Change-Id: I6cb9052eb56fd83ef7ee81751d9791533a36aeed
This commit is contained in:
@@ -853,8 +853,11 @@ static jboolean android_os_Debug_isVmapStack(JNIEnv *env, jobject clazz)
|
||||
} cfg_state = CONFIG_UNKNOWN;
|
||||
|
||||
if (cfg_state == CONFIG_UNKNOWN) {
|
||||
const std::map<std::string, std::string> configs =
|
||||
vintf::VintfObject::GetInstance()->getRuntimeInfo()->kernelConfigs();
|
||||
auto runtime_info = vintf::VintfObject::GetInstance()
|
||||
->getRuntimeInfo(false /* skip cache */,
|
||||
vintf::RuntimeInfo::FetchFlag::CONFIG_GZ);
|
||||
CHECK(runtime_info != nullptr) << "Kernel configs cannot be fetched. b/151092221";
|
||||
const std::map<std::string, std::string>& configs = runtime_info->kernelConfigs();
|
||||
std::map<std::string, std::string>::const_iterator it = configs.find("CONFIG_VMAP_STACK");
|
||||
cfg_state = (it != configs.end() && it->second == "y") ? CONFIG_SET : CONFIG_UNSET;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user