< prev index next >
src/hotspot/share/oops/valueKlass.cpp
Print this page
*** 91,101 ****
}
instanceOop ValueKlass::allocate_instance(TRAPS) {
int size = size_helper(); // Query before forming handle.
! return (instanceOop)CollectedHeap::obj_allocate(this, size, CHECK_NULL);
}
instanceOop ValueKlass::allocate_buffered_or_heap_instance(bool* in_heap, TRAPS) {
assert(THREAD->is_Java_thread(), "Only Java threads can call this method");
--- 91,103 ----
}
instanceOop ValueKlass::allocate_instance(TRAPS) {
int size = size_helper(); // Query before forming handle.
! instanceOop oop = (instanceOop)CollectedHeap::obj_allocate(this, size, CHECK_NULL);
! assert(oop->mark()->is_always_locked(), "Unlocked value type");
! return oop;
}
instanceOop ValueKlass::allocate_buffered_or_heap_instance(bool* in_heap, TRAPS) {
assert(THREAD->is_Java_thread(), "Only Java threads can call this method");
*** 616,620 ****
--- 618,632 ----
f->do_oop(p);
}
}
}
}
+
+ void ValueKlass::verify_on(outputStream* st) {
+ InstanceKlass::verify_on(st);
+ guarantee(prototype_header()->is_always_locked(), "Prototype header is not always locked");
+ }
+
+ void ValueKlass::oop_verify_on(oop obj, outputStream* st) {
+ InstanceKlass::oop_verify_on(obj, st);
+ guarantee(obj->mark()->is_always_locked(), "Header is not always locked");
+ }
< prev index next >