summaryrefslogtreecommitdiff
path: root/runtime/mirror/class-alloc-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/mirror/class-alloc-inl.h')
-rw-r--r--runtime/mirror/class-alloc-inl.h14
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 =