Refactor conditional uses of ReadBarrier::AssertToSpaceInvariant.
Test: m test-art-host
Bug: 12687968
Change-Id: Idf7de149bc0d0dcfc9efe01918aa026754f9070d
diff --git a/runtime/read_barrier.h b/runtime/read_barrier.h
index 45e78bc..00674b2 100644
--- a/runtime/read_barrier.h
+++ b/runtime/read_barrier.h
@@ -89,6 +89,14 @@
static void AssertToSpaceInvariant(GcRootSource* gc_root_source, mirror::Object* ref)
REQUIRES_SHARED(Locks::mutator_lock_);
+ // Without the holder object, and only with the read barrier configuration (no-op otherwise).
+ static void MaybeAssertToSpaceInvariant(mirror::Object* ref)
+ REQUIRES_SHARED(Locks::mutator_lock_) {
+ if (kUseReadBarrier) {
+ AssertToSpaceInvariant(ref);
+ }
+ }
+
// ALWAYS_INLINE on this caused a performance regression b/26744236.
static mirror::Object* Mark(mirror::Object* obj) REQUIRES_SHARED(Locks::mutator_lock_);