Right now this one has the comment mentioning CMS:
Klass** oopDesc::klass_addr(HeapWord* mem) {
// Only used internally and with CMS and will not work with
// UseCompressedOops
assert(!UseCompressedClassPointers, "only supported with uncompressed klass pointers");
ByteSize offset = byte_offset_of(oopDesc, _metadata._klass);
return (Klass**) (((char*)mem) + in_bytes(offset));
}
But that is not true, it is used on the generic paths.
Maybe we can clean up related code a little too.
Klass** oopDesc::klass_addr(HeapWord* mem) {
// Only used internally and with CMS and will not work with
// UseCompressedOops
assert(!UseCompressedClassPointers, "only supported with uncompressed klass pointers");
ByteSize offset = byte_offset_of(oopDesc, _metadata._klass);
return (Klass**) (((char*)mem) + in_bytes(offset));
}
But that is not true, it is used on the generic paths.
Maybe we can clean up related code a little too.