< prev index next >

src/share/vm/oops/oop.hpp

Print this page
rev 7800 : [mq]: cleanupOopInlineHpp

@@ -115,10 +115,19 @@
   bool is_instanceRef()         const;
   bool is_array()               const;
   bool is_objArray()            const;
   bool is_typeArray()           const;
 
+  // type test operations that doesn't require inclusion of oop.inline.hpp.
+  bool is_instance_noinline()          const;
+  bool is_instanceMirror_noinline()    const;
+  bool is_instanceClassLoader_noline() const;
+  bool is_instanceRef_noline()         const;
+  bool is_array_noinline()             const;
+  bool is_objArray_noinline()          const;
+  bool is_typeArray_noinline()         const;
+
  private:
   // field addresses in oop
   void*     field_base(int offset)        const;
 
   jbyte*    byte_field_addr(int offset)   const;

@@ -368,12 +377,17 @@
   // marks are forwarded to stack when object is locked
   bool     has_displaced_mark() const;
   markOop  displaced_mark() const;
   void     set_displaced_mark(markOop m);
 
+  static bool has_klass_gap();
+  
   // for code generation
   static int mark_offset_in_bytes()    { return offset_of(oopDesc, _mark); }
   static int klass_offset_in_bytes()   { return offset_of(oopDesc, _metadata._klass); }
-  static int klass_gap_offset_in_bytes();
+  static int klass_gap_offset_in_bytes() {
+    assert(has_klass_gap(), "only applicable to compressed klass pointers");
+    return klass_offset_in_bytes() + sizeof(narrowKlass);
+  }
 };
 
 #endif // SHARE_VM_OOPS_OOP_HPP
< prev index next >