Check value in dump before printing
For applications that remove the names of resources from the string pool, check that the attribute has a name before attempting to print it. Test: manual Bug: 130553900 Change-Id: I05e5d59f01b2c02c8a024d06fd896074d6bf465b
This commit is contained in:
@@ -129,12 +129,20 @@ class ValueBodyPrinter : public ConstValueVisitor {
|
||||
constexpr uint32_t kMask = android::ResTable_map::TYPE_ENUM | android::ResTable_map::TYPE_FLAGS;
|
||||
if (attr->type_mask & kMask) {
|
||||
for (const auto& symbol : attr->symbols) {
|
||||
printer_->Print(symbol.symbol.name.value().entry);
|
||||
if (symbol.symbol.id) {
|
||||
printer_->Print("(");
|
||||
if (symbol.symbol.name) {
|
||||
printer_->Print(symbol.symbol.name.value().entry);
|
||||
|
||||
if (symbol.symbol.id) {
|
||||
printer_->Print("(");
|
||||
printer_->Print(symbol.symbol.id.value().to_string());
|
||||
printer_->Print(")");
|
||||
}
|
||||
} else if (symbol.symbol.id) {
|
||||
printer_->Print(symbol.symbol.id.value().to_string());
|
||||
printer_->Print(")");
|
||||
} else {
|
||||
printer_->Print("???");
|
||||
}
|
||||
|
||||
printer_->Println(StringPrintf("=0x%08x", symbol.value));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user