diff options
Diffstat (limited to 'runtime/gc/heap.h')
| -rw-r--r-- | runtime/gc/heap.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/runtime/gc/heap.h b/runtime/gc/heap.h index 0c671d269d..3a8e29b08a 100644 --- a/runtime/gc/heap.h +++ b/runtime/gc/heap.h @@ -854,6 +854,10 @@ class Heap { allocator_type != kAllocatorTypeRegionTLAB; } static ALWAYS_INLINE bool AllocatorMayHaveConcurrentGC(AllocatorType allocator_type) { + if (kUseReadBarrier) { + // Read barrier may have the TLAB allocator but is always concurrent. TODO: clean this up. + return true; + } return allocator_type != kAllocatorTypeBumpPointer && allocator_type != kAllocatorTypeTLAB; @@ -923,11 +927,20 @@ class Heap { size_t* bytes_tl_bulk_allocated) REQUIRES_SHARED(Locks::mutator_lock_); + mirror::Object* AllocWithNewTLAB(Thread* self, + size_t alloc_size, + bool grow, + size_t* bytes_allocated, + size_t* usable_size, + size_t* bytes_tl_bulk_allocated) + REQUIRES_SHARED(Locks::mutator_lock_); + void ThrowOutOfMemoryError(Thread* self, size_t byte_count, AllocatorType allocator_type) REQUIRES_SHARED(Locks::mutator_lock_); - template <bool kGrow> - ALWAYS_INLINE bool IsOutOfMemoryOnAllocation(AllocatorType allocator_type, size_t alloc_size); + ALWAYS_INLINE bool IsOutOfMemoryOnAllocation(AllocatorType allocator_type, + size_t alloc_size, + bool grow); // Run the finalizers. If timeout is non zero, then we use the VMRuntime version. void RunFinalization(JNIEnv* env, uint64_t timeout); |