mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8166583: Add oopDesc::klass_or_null_acquire()
Added new function. Reviewed-by: dholmes, tschatzl
This commit is contained in:
parent
630f133f17
commit
c0c4200524
2 changed files with 12 additions and 1 deletions
|
@ -83,6 +83,7 @@ class oopDesc {
|
||||||
|
|
||||||
inline Klass* klass() const;
|
inline Klass* klass() const;
|
||||||
inline Klass* klass_or_null() const volatile;
|
inline Klass* klass_or_null() const volatile;
|
||||||
|
inline Klass* klass_or_null_acquire() const volatile;
|
||||||
inline Klass** klass_addr();
|
inline Klass** klass_addr();
|
||||||
inline narrowKlass* compressed_klass_addr();
|
inline narrowKlass* compressed_klass_addr();
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,6 @@ Klass* oopDesc::klass() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
Klass* oopDesc::klass_or_null() const volatile {
|
Klass* oopDesc::klass_or_null() const volatile {
|
||||||
// can be NULL in CMS
|
|
||||||
if (UseCompressedClassPointers) {
|
if (UseCompressedClassPointers) {
|
||||||
return Klass::decode_klass(_metadata._compressed_klass);
|
return Klass::decode_klass(_metadata._compressed_klass);
|
||||||
} else {
|
} else {
|
||||||
|
@ -117,6 +116,17 @@ Klass* oopDesc::klass_or_null() const volatile {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Klass* oopDesc::klass_or_null_acquire() const volatile {
|
||||||
|
if (UseCompressedClassPointers) {
|
||||||
|
// Workaround for non-const load_acquire parameter.
|
||||||
|
const volatile narrowKlass* addr = &_metadata._compressed_klass;
|
||||||
|
volatile narrowKlass* xaddr = const_cast<volatile narrowKlass*>(addr);
|
||||||
|
return Klass::decode_klass(OrderAccess::load_acquire(xaddr));
|
||||||
|
} else {
|
||||||
|
return (Klass*)OrderAccess::load_ptr_acquire(&_metadata._klass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Klass** oopDesc::klass_addr() {
|
Klass** oopDesc::klass_addr() {
|
||||||
// Only used internally and with CMS and will not work with
|
// Only used internally and with CMS and will not work with
|
||||||
// UseCompressedOops
|
// UseCompressedOops
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue