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
(cherry picked from commit 77c1f592fa)
Merged-In: I6cb9052eb56fd83ef7ee81751d9791533a36aeed
This commit is contained in:
@@ -846,8 +846,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