From d1e44e27126c8ba20f868a8f70c37633386303c5 Mon Sep 17 00:00:00 2001 From: David Sehr Date: Thu, 6 Oct 2016 17:09:32 -0700 Subject: Add "fixups" for ids referenced in code Allow better visualization by determining which type_id, string_id, method_id, and field_id values are used by code_items. Bug: 29921113 Change-Id: Ia6ff72064104cd5c0868e972ca65536dbeb37b09 Test: dexlayout -s {some favorite apks} --- dexlayout/dex_visualize.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'dexlayout/dex_visualize.cc') diff --git a/dexlayout/dex_visualize.cc b/dexlayout/dex_visualize.cc index 46dff5f5f2..bc9ca6de98 100644 --- a/dexlayout/dex_visualize.cc +++ b/dexlayout/dex_visualize.cc @@ -279,6 +279,25 @@ class Dumper { const dex_ir::CodeItem* code_item = method->GetCodeItem(); if (code_item != nullptr) { DumpAddressRange(code_item, class_index); + const dex_ir::CodeFixups* fixups = code_item->GetCodeFixups(); + if (fixups != nullptr) { + std::vector* type_ids = fixups->TypeIds(); + for (dex_ir::TypeId* type_id : *type_ids) { + DumpTypeId(type_id, class_index); + } + std::vector* string_ids = fixups->StringIds(); + for (dex_ir::StringId* string_id : *string_ids) { + DumpStringId(string_id, class_index); + } + std::vector* method_ids = fixups->MethodIds(); + for (dex_ir::MethodId* method_id : *method_ids) { + DumpMethodId(method_id, class_index); + } + std::vector* field_ids = fixups->FieldIds(); + for (dex_ir::FieldId* field_id : *field_ids) { + DumpFieldId(field_id, class_index); + } + } } } -- cgit v1.2.3-59-g8ed1b