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/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index 12f791c..9b65255 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -300,9 +300,7 @@
return FailureKind::kNoFailure;
}
ClassDataItemIterator it(*dex_file, class_data);
- while (it.HasNextStaticField() || it.HasNextInstanceField()) {
- it.Next();
- }
+ it.SkipAllFields();
ClassLinker* linker = Runtime::Current()->GetClassLinker();
// Direct methods.
MethodVerifier::FailureData data1 = VerifyMethods<true>(self,
@@ -1986,10 +1984,7 @@
const uint8_t* class_data = dex_file.GetClassData(*class_def);
DCHECK(class_data != nullptr);
ClassDataItemIterator it(dex_file, class_data);
- // Skip static fields.
- while (it.HasNextStaticField()) {
- it.Next();
- }
+ it.SkipStaticFields();
while (it.HasNextInstanceField()) {
if ((it.GetFieldAccessFlags() & kAccFinal) != 0) {
return it.GetMemberIndex();