src/share/vm/oops/klassOop.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7118863 Sdiff src/share/vm/oops

src/share/vm/oops/klassOop.hpp

Print this page




  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_OOPS_KLASSOOP_HPP
  26 #define SHARE_VM_OOPS_KLASSOOP_HPP
  27 
  28 #include "oops/oop.hpp"
  29 
  30 // A klassOop is the C++ equivalent of a Java class.
  31 // Part of a klassOopDesc is a Klass which handle the
  32 // dispatching for the C++ method calls.
  33 
  34 //  klassOop object layout:
  35 //    [header     ]
  36 //    [klass_field]
  37 //    [KLASS      ]
  38 
  39 class klassOopDesc : public oopDesc {
  40  public:
  41   // size operation
  42   static int header_size()                       { return sizeof(klassOopDesc)/HeapWordSize; }
  43 
  44   // support for code generation
  45   static int klass_part_offset_in_bytes()        { return sizeof(klassOopDesc); }
  46 
  47   // returns the Klass part containing dispatching behavior
  48   Klass* klass_part() const                      { return (Klass*)((address)this + klass_part_offset_in_bytes()); }
  49 
  50   // Convenience wrapper
  51   inline oop java_mirror() const;
  52 
  53  private:
  54   // These have no implementation since klassOop should never be accessed in this fashion
  55   oop obj_field(int offset) const;
  56   volatile oop obj_field_volatile(int offset) const;
  57   void obj_field_put(int offset, oop value);
  58   void obj_field_put_raw(int offset, oop value);
  59   void obj_field_put_volatile(int offset, oop value);
  60 
  61   jbyte byte_field(int offset) const;
  62   void byte_field_put(int offset, jbyte contents);
  63 
  64   jchar char_field(int offset) const;
  65   void char_field_put(int offset, jchar contents);
  66 
  67   jboolean bool_field(int offset) const;
  68   void bool_field_put(int offset, jboolean contents);




  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_OOPS_KLASSOOP_HPP
  26 #define SHARE_VM_OOPS_KLASSOOP_HPP
  27 
  28 #include "oops/oop.hpp"
  29 
  30 // A klassOop is the C++ equivalent of a Java class.
  31 // Part of a klassOopDesc is a Klass which handle the
  32 // dispatching for the C++ method calls.
  33 
  34 //  klassOop object layout:
  35 //    [header     ]
  36 //    [klass_field]
  37 //    [KLASS      ]
  38 
  39 class klassOopDesc : public oopDesc {
  40  public:






  41   // returns the Klass part containing dispatching behavior
  42   Klass* klass_part() const                      { return (Klass*)((address)this + sizeof(klassOopDesc)); }
  43 
  44   // Convenience wrapper
  45   inline oop java_mirror() const;
  46 
  47  private:
  48   // These have no implementation since klassOop should never be accessed in this fashion
  49   oop obj_field(int offset) const;
  50   volatile oop obj_field_volatile(int offset) const;
  51   void obj_field_put(int offset, oop value);
  52   void obj_field_put_raw(int offset, oop value);
  53   void obj_field_put_volatile(int offset, oop value);
  54 
  55   jbyte byte_field(int offset) const;
  56   void byte_field_put(int offset, jbyte contents);
  57 
  58   jchar char_field(int offset) const;
  59   void char_field_put(int offset, jchar contents);
  60 
  61   jboolean bool_field(int offset) const;
  62   void bool_field_put(int offset, jboolean contents);


src/share/vm/oops/klassOop.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File