Prevent ArtMethod clearing race
There was race condition where the GC would be visiting the methods
of a class while the class linker overwrote the contents with 0xFE
when copying to a new array.
Since the GC is holding the class table lock at this time, we can
use this lock in the class linker to prevent the race.
Bug: 28699001
(cherry picked from commit 10c5f56423feaf3eadb3d4c09c61d2b998404162)
Change-Id: I5ddca93106cb8e48962cf44e5ce434c45e05cd0c
diff --git a/runtime/class_table.h b/runtime/class_table.h
index eb784b5..686381d 100644
--- a/runtime/class_table.h
+++ b/runtime/class_table.h
@@ -153,6 +153,10 @@
REQUIRES(!lock_)
SHARED_REQUIRES(Locks::mutator_lock_);
+ ReaderWriterMutex& GetLock() {
+ return lock_;
+ }
+
private:
// Lock to guard inserting and removing.
mutable ReaderWriterMutex lock_;