OSDN Git Service

Merge changes from topic \'image_verify\' am: 19a4784
authorMathieu Chartier <mathieuc@google.com>
Thu, 31 Mar 2016 23:14:54 +0000 (23:14 +0000)
committerandroid-build-merger <android-build-merger@google.com>
Thu, 31 Mar 2016 23:14:54 +0000 (23:14 +0000)
am: 36d4ec6

* commit '36d4ec60f1d5963b69326cc61e2a6db0fff54ea7':
  Disable checks for b/27493510
  Add verification for image ArtMethod declaring classes

Change-Id: I33809874b914d560b214f7363e0f1d4aeeadc8a6

1  2 
runtime/class_linker.cc

@@@ -1434,19 -1434,19 +1434,28 @@@ bool ClassLinker::UpdateAppImageClassLo
          }
        }
      }
-     if (*out_forward_dex_cache_array) {
-       ScopedTrace timing("Fixup ArtMethod dex cache arrays");
-       FixupArtMethodArrayVisitor visitor(header);
-       header.GetImageSection(ImageHeader::kSectionArtMethods).VisitPackedArtMethods(
-           &visitor,
-           space->Begin(),
-           sizeof(void*));
-       Runtime::Current()->GetHeap()->WriteBarrierEveryFieldOf(class_loader.Get());
-     }
+   }
+   if (*out_forward_dex_cache_array) {
+     ScopedTrace timing("Fixup ArtMethod dex cache arrays");
+     FixupArtMethodArrayVisitor visitor(header);
+     header.GetImageSection(ImageHeader::kSectionArtMethods).VisitPackedArtMethods(
+         &visitor,
+         space->Begin(),
+         sizeof(void*));
+     Runtime::Current()->GetHeap()->WriteBarrierEveryFieldOf(class_loader.Get());
+   }
+   if (kVerifyArtMethodDeclaringClasses) {
+     ScopedTrace timing("Verify declaring classes");
+     ReaderMutexLock rmu(self, *Locks::heap_bitmap_lock_);
++    VerifyDeclaringClassVisitor visitor;
++    header.GetImageSection(ImageHeader::kSectionArtMethods).VisitPackedArtMethods(
++        &visitor,
++        space->Begin(),
++        sizeof(void*));
 +  }
 +  if (kVerifyArtMethodDeclaringClasses) {
 +    ScopedTrace timing("Verify declaring classes");
 +    ReaderMutexLock rmu(self, *Locks::heap_bitmap_lock_);
      VerifyDeclaringClassVisitor visitor;
      header.GetImageSection(ImageHeader::kSectionArtMethods).VisitPackedArtMethods(
          &visitor,