< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page


 244   }
 245   virtual bool can_be_primary_super_slow() const;
 246 
 247   // Returns number of primary supers; may be a number in the inclusive range [0, primary_super_limit].
 248   juint super_depth() const {
 249     if (!can_be_primary_super()) {
 250       return primary_super_limit();
 251     } else {
 252       juint d = (super_check_offset() - in_bytes(primary_supers_offset())) / sizeof(Klass*);
 253       assert(d < primary_super_limit(), "oob");
 254       assert(_primary_supers[d] == this, "proper init");
 255       return d;
 256     }
 257   }
 258 
 259   // java mirror
 260   oop java_mirror() const;
 261   void set_java_mirror(Handle m);
 262 
 263   oop archived_java_mirror_raw() NOT_CDS_JAVA_HEAP_RETURN_(NULL); // no GC barrier

 264   void set_archived_java_mirror_raw(oop m) NOT_CDS_JAVA_HEAP_RETURN; // no GC barrier
 265 
 266   // Temporary mirror switch used by RedefineClasses
 267   // Both mirrors are on the ClassLoaderData::_handles list already so no
 268   // barriers are needed.
 269   void set_java_mirror_handle(OopHandle mirror) { _java_mirror = mirror; }
 270   OopHandle java_mirror_handle() const          {
 271     return _java_mirror;
 272   }
 273 
 274   // modifier flags
 275   jint modifier_flags() const          { return _modifier_flags; }
 276   void set_modifier_flags(jint flags)  { _modifier_flags = flags; }
 277 
 278   // size helper
 279   int layout_helper() const            { return _layout_helper; }
 280   void set_layout_helper(int lh)       { _layout_helper = lh; }
 281 
 282   // Note: for instances layout_helper() may include padding.
 283   // Use InstanceKlass::contains_field_offset to classify field offsets.




 244   }
 245   virtual bool can_be_primary_super_slow() const;
 246 
 247   // Returns number of primary supers; may be a number in the inclusive range [0, primary_super_limit].
 248   juint super_depth() const {
 249     if (!can_be_primary_super()) {
 250       return primary_super_limit();
 251     } else {
 252       juint d = (super_check_offset() - in_bytes(primary_supers_offset())) / sizeof(Klass*);
 253       assert(d < primary_super_limit(), "oob");
 254       assert(_primary_supers[d] == this, "proper init");
 255       return d;
 256     }
 257   }
 258 
 259   // java mirror
 260   oop java_mirror() const;
 261   void set_java_mirror(Handle m);
 262 
 263   oop archived_java_mirror_raw() NOT_CDS_JAVA_HEAP_RETURN_(NULL); // no GC barrier
 264   narrowOop archived_java_mirror_raw_narrow() NOT_CDS_JAVA_HEAP_RETURN_(NULL); // no GC barrier
 265   void set_archived_java_mirror_raw(oop m) NOT_CDS_JAVA_HEAP_RETURN; // no GC barrier
 266 
 267   // Temporary mirror switch used by RedefineClasses
 268   // Both mirrors are on the ClassLoaderData::_handles list already so no
 269   // barriers are needed.
 270   void set_java_mirror_handle(OopHandle mirror) { _java_mirror = mirror; }
 271   OopHandle java_mirror_handle() const          {
 272     return _java_mirror;
 273   }
 274 
 275   // modifier flags
 276   jint modifier_flags() const          { return _modifier_flags; }
 277   void set_modifier_flags(jint flags)  { _modifier_flags = flags; }
 278 
 279   // size helper
 280   int layout_helper() const            { return _layout_helper; }
 281   void set_layout_helper(int lh)       { _layout_helper = lh; }
 282 
 283   // Note: for instances layout_helper() may include padding.
 284   // Use InstanceKlass::contains_field_offset to classify field offsets.


< prev index next >