diff options
author | Hiroshi Yamauchi <yamauchi@google.com> | 2014-04-22 17:10:48 -0700 |
---|---|---|
committer | Hiroshi Yamauchi <yamauchi@google.com> | 2014-04-28 12:42:43 -0700 |
commit | 4db7449c0065971ec3a64ca04aeb64cfd2e802f0 (patch) | |
tree | a75e8c888151388653cf81a1a35f008cb7e24528 /runtime/gc/collector/semi_space.h | |
parent | ec3a2157d2a3e8bcfb34e9a2f2aa54254a8eec19 (diff) | |
download | art-4db7449c0065971ec3a64ca04aeb64cfd2e802f0.zip art-4db7449c0065971ec3a64ca04aeb64cfd2e802f0.tar.gz art-4db7449c0065971ec3a64ca04aeb64cfd2e802f0.tar.bz2 |
Improve GSS reference processing.
Support the case where the reference object is in the free list space
and the referent object is in the bump pointer space at a bump pointer
space collection.
Bug: 11650816
Change-Id: If98b08edc9e37351c74ee07cb3f2d30c2b4d0056
Diffstat (limited to 'runtime/gc/collector/semi_space.h')
-rw-r--r-- | runtime/gc/collector/semi_space.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/gc/collector/semi_space.h b/runtime/gc/collector/semi_space.h index 3d635f0..51b0869 100644 --- a/runtime/gc/collector/semi_space.h +++ b/runtime/gc/collector/semi_space.h @@ -138,6 +138,10 @@ class SemiSpace : public GarbageCollector { static void ProcessMarkStackCallback(void* arg) EXCLUSIVE_LOCKS_REQUIRED(Locks::mutator_lock_, Locks::heap_bitmap_lock_); + static void DelayReferenceReferentCallback(mirror::Class* klass, mirror::Reference* ref, + void* arg) + SHARED_LOCKS_REQUIRED(Locks::heap_bitmap_lock_, Locks::mutator_lock_); + virtual mirror::Object* MarkNonForwardedObject(mirror::Object* obj) EXCLUSIVE_LOCKS_REQUIRED(Locks::heap_bitmap_lock_) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); |