Fix build.
Build broken due to a rare lock checking violation happening during
oat generation. Added a new lock level for the mark stack lock since
it may be acquired with the globals/pins lock.
Change-Id: I944ae0700c66ad050fe3d23aba2f2c377c5df799
diff --git a/runtime/gc/collector/mark_sweep.cc b/runtime/gc/collector/mark_sweep.cc
index 30c295b..2f68f8e 100644
--- a/runtime/gc/collector/mark_sweep.cc
+++ b/runtime/gc/collector/mark_sweep.cc
@@ -144,7 +144,7 @@
cleared_reference_list_(NULL),
gc_barrier_(new Barrier(0)),
large_object_lock_("mark sweep large object lock", kMarkSweepLargeObjectLock),
- mark_stack_lock_("mark sweep mark stack lock"),
+ mark_stack_lock_("mark sweep mark stack lock", kMarkSweepMarkStackLock),
is_concurrent_(is_concurrent),
clear_soft_references_(false) {
}
diff --git a/runtime/gc/collector/mark_sweep.h b/runtime/gc/collector/mark_sweep.h
index d5f4042..fdd0c86 100644
--- a/runtime/gc/collector/mark_sweep.h
+++ b/runtime/gc/collector/mark_sweep.h
@@ -446,7 +446,7 @@
UniquePtr<Barrier> gc_barrier_;
Mutex large_object_lock_ DEFAULT_MUTEX_ACQUIRED_AFTER;
- Mutex mark_stack_lock_ DEFAULT_MUTEX_ACQUIRED_AFTER;
+ Mutex mark_stack_lock_ ACQUIRED_AFTER(Locks::classlinker_classes_lock_);
const bool is_concurrent_;
diff --git a/runtime/locks.h b/runtime/locks.h
index 88d05db..f63e2b1 100644
--- a/runtime/locks.h
+++ b/runtime/locks.h
@@ -38,6 +38,7 @@
kAbortLock,
kJdwpSocketLock,
kAllocSpaceLock,
+ kMarkSweepMarkStackLock,
kDefaultMutexLevel,
kMarkSweepLargeObjectLock,
kPinTableLock,