summaryrefslogtreecommitdiff
path: root/runtime/gc/reference_processor.cc
diff options
context:
space:
mode:
author Hiroshi Yamauchi <yamauchi@google.com> 2014-05-09 19:47:41 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2014-05-09 19:47:41 +0000
commita52c5a695029501c2612f331684c45cf2ba8bcc9 (patch)
treeae664f7aafc8a193e4e2e7a48e1bbb21b6f089cc /runtime/gc/reference_processor.cc
parent1eda9c1d570f273c1d9f24438c35c8e25c990261 (diff)
parentbfff21aaa05d4fce39481cf7899f7639eb7fd66d (diff)
Merge "Reference::GetReferent() calls by GC should not trigger read barriers."
Diffstat (limited to 'runtime/gc/reference_processor.cc')
-rw-r--r--runtime/gc/reference_processor.cc3
1 files changed, 1 insertions, 2 deletions
diff --git a/runtime/gc/reference_processor.cc b/runtime/gc/reference_processor.cc
index 2aba95102f..a58df8ec2c 100644
--- a/runtime/gc/reference_processor.cc
+++ b/runtime/gc/reference_processor.cc
@@ -174,7 +174,7 @@ void ReferenceProcessor::DelayReferenceReferent(mirror::Class* klass, mirror::Re
IsMarkedCallback is_marked_callback, void* arg) {
// klass can be the class of the old object if the visitor already updated the class of ref.
DCHECK(klass->IsReferenceClass());
- mirror::Object* referent = ref->GetReferent();
+ mirror::Object* referent = ref->GetReferent<kWithoutReadBarrier>();
if (referent != nullptr) {
mirror::Object* forward_address = is_marked_callback(referent, arg);
// Null means that the object is not currently marked.
@@ -221,4 +221,3 @@ void ReferenceProcessor::EnqueueClearedReferences() {
} // namespace gc
} // namespace art
-