--- a/hotspot/src/share/vm/oops/klass.hpp Tue Dec 20 00:55:02 2011 -0800
+++ b/hotspot/src/share/vm/oops/klass.hpp Wed Dec 07 11:35:03 2011 +0100
@@ -313,7 +313,7 @@
// Can this klass be a primary super? False for interfaces and arrays of
// interfaces. False also for arrays or classes with long super chains.
bool can_be_primary_super() const {
- const juint secondary_offset = secondary_super_cache_offset_in_bytes() + sizeof(oopDesc);
+ const juint secondary_offset = in_bytes(secondary_super_cache_offset());
return super_check_offset() != secondary_offset;
}
virtual bool can_be_primary_super_slow() const;
@@ -323,7 +323,7 @@
if (!can_be_primary_super()) {
return primary_super_limit();
} else {
- juint d = (super_check_offset() - (primary_supers_offset_in_bytes() + sizeof(oopDesc))) / sizeof(klassOop);
+ juint d = (super_check_offset() - in_bytes(primary_supers_offset())) / sizeof(klassOop);
assert(d < primary_super_limit(), "oob");
assert(_primary_supers[d] == as_klassOop(), "proper init");
return d;
@@ -373,15 +373,15 @@
virtual void set_alloc_size(juint n) = 0;
// Compiler support
- static int super_offset_in_bytes() { return offset_of(Klass, _super); }
- static int super_check_offset_offset_in_bytes() { return offset_of(Klass, _super_check_offset); }
- static int primary_supers_offset_in_bytes(){ return offset_of(Klass, _primary_supers); }
- static int secondary_super_cache_offset_in_bytes() { return offset_of(Klass, _secondary_super_cache); }
- static int secondary_supers_offset_in_bytes() { return offset_of(Klass, _secondary_supers); }
- static int java_mirror_offset_in_bytes() { return offset_of(Klass, _java_mirror); }
- static int modifier_flags_offset_in_bytes(){ return offset_of(Klass, _modifier_flags); }
- static int layout_helper_offset_in_bytes() { return offset_of(Klass, _layout_helper); }
- static int access_flags_offset_in_bytes() { return offset_of(Klass, _access_flags); }
+ static ByteSize super_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _super)); }
+ static ByteSize super_check_offset_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _super_check_offset)); }
+ static ByteSize primary_supers_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _primary_supers)); }
+ static ByteSize secondary_super_cache_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _secondary_super_cache)); }
+ static ByteSize secondary_supers_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _secondary_supers)); }
+ static ByteSize java_mirror_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _java_mirror)); }
+ static ByteSize modifier_flags_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _modifier_flags)); }
+ static ByteSize layout_helper_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _layout_helper)); }
+ static ByteSize access_flags_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _access_flags)); }
// Unpacking layout_helper:
enum {
@@ -478,7 +478,7 @@
bool is_subtype_of(klassOop k) const {
juint off = k->klass_part()->super_check_offset();
klassOop sup = *(klassOop*)( (address)as_klassOop() + off );
- const juint secondary_offset = secondary_super_cache_offset_in_bytes() + sizeof(oopDesc);
+ const juint secondary_offset = in_bytes(secondary_super_cache_offset());
if (sup == k) {
return true;
} else if (off != secondary_offset) {
@@ -674,7 +674,7 @@
// are potential problems in setting the bias pattern for
// JVM-internal oops.
inline void set_prototype_header(markOop header);
- static int prototype_header_offset_in_bytes() { return offset_of(Klass, _prototype_header); }
+ static ByteSize prototype_header_offset() { return in_ByteSize(sizeof(klassOopDesc) + offset_of(Klass, _prototype_header)); }
int biased_lock_revocation_count() const { return (int) _biased_lock_revocation_count; }
// Atomically increments biased_lock_revocation_count and returns updated value