Add field/method skipping helper functions to DexFile
Specifically added SkipStaticFields, SkipInstanceFields,
SkipAllFields, SkipStaticMethods, and SkipVirtualMethods.
Also applied the helpers to the code base.
Test: test-art-host
Change-Id: Idda77f9a6e2564c2e588d2bbe11cc320063fdb32
diff --git a/runtime/dex_file_tracking_registrar.cc b/runtime/dex_file_tracking_registrar.cc
index f41a50b..14548ce 100644
--- a/runtime/dex_file_tracking_registrar.cc
+++ b/runtime/dex_file_tracking_registrar.cc
@@ -134,10 +134,7 @@
const uint8_t* class_data = dex_file_->GetClassData(cd);
if (class_data != nullptr) {
ClassDataItemIterator cdit(*dex_file_, class_data);
- // Skipping Fields
- while (cdit.HasNextStaticField() || cdit.HasNextInstanceField()) {
- cdit.Next();
- }
+ cdit.SkipAllFields();
while (cdit.HasNextDirectMethod()) {
const DexFile::CodeItem* code_item = cdit.GetMethodCodeItem();
if (code_item != nullptr) {
@@ -157,10 +154,7 @@
const uint8_t* class_data = dex_file_->GetClassData(cd);
if (class_data != nullptr) {
ClassDataItemIterator cdit(*dex_file_, class_data);
- // Skipping Fields
- while (cdit.HasNextStaticField() || cdit.HasNextInstanceField()) {
- cdit.Next();
- }
+ cdit.SkipAllFields();
while (cdit.HasNextDirectMethod()) {
const DexFile::CodeItem* code_item = cdit.GetMethodCodeItem();
if (code_item != nullptr) {
@@ -181,10 +175,7 @@
const uint8_t* class_data = dex_file_->GetClassData(cd);
if (class_data != nullptr) {
ClassDataItemIterator cdit(*dex_file_, class_data);
- // Skipping Fields
- while (cdit.HasNextStaticField() || cdit.HasNextInstanceField()) {
- cdit.Next();
- }
+ cdit.SkipAllFields();
while (cdit.HasNextDirectMethod()) {
const DexFile::MethodId& methodid_item = dex_file_->GetMethodId(cdit.GetMemberIndex());
const char * methodid_name = dex_file_->GetMethodName(methodid_item);