diff options
Diffstat (limited to 'runtime/mirror/class-alloc-inl.h')
-rw-r--r-- | runtime/mirror/class-alloc-inl.h | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/runtime/mirror/class-alloc-inl.h b/runtime/mirror/class-alloc-inl.h index 5627b4956e..28612443be 100644 --- a/runtime/mirror/class-alloc-inl.h +++ b/runtime/mirror/class-alloc-inl.h @@ -46,19 +46,13 @@ inline void Class::CheckObjectAlloc() { DCHECK_GE(this->object_size_, sizeof(Object)); } -template<bool kIsInstrumented, Class::AddFinalizer kAddFinalizer, bool kCheckAddFinalizer> +template<bool kIsInstrumented, bool kCheckAddFinalizer> inline ObjPtr<Object> Class::Alloc(Thread* self, gc::AllocatorType allocator_type) { CheckObjectAlloc(); gc::Heap* heap = Runtime::Current()->GetHeap(); - bool add_finalizer; - switch (kAddFinalizer) { - case Class::AddFinalizer::kUseClassTag: - add_finalizer = IsFinalizable(); - break; - case Class::AddFinalizer::kNoAddFinalizer: - add_finalizer = false; - DCHECK(!kCheckAddFinalizer || !IsFinalizable()); - break; + const bool add_finalizer = kCheckAddFinalizer && IsFinalizable(); + if (!kCheckAddFinalizer) { + DCHECK(!IsFinalizable()); } // Note that the `this` pointer may be invalidated after the allocation. ObjPtr<Object> obj = |