< prev index next >

src/share/vm/oops/instanceKlass.hpp

Print this page
rev 8362 : [mq]: hotspot


   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_OOPS_INSTANCEKLASS_HPP
  26 #define SHARE_VM_OOPS_INSTANCEKLASS_HPP
  27 
  28 #include "classfile/classLoaderData.hpp"

  29 #include "memory/referenceType.hpp"
  30 #include "memory/specialized_oop_closures.hpp"
  31 #include "oops/annotations.hpp"
  32 #include "oops/constMethod.hpp"
  33 #include "oops/fieldInfo.hpp"
  34 #include "oops/instanceOop.hpp"
  35 #include "oops/klassVtable.hpp"
  36 #include "runtime/handles.hpp"
  37 #include "runtime/os.hpp"

  38 #include "utilities/accessFlags.hpp"
  39 #include "utilities/bitMap.inline.hpp"
  40 #include "utilities/macros.hpp"
  41 #include "trace/traceMacros.hpp"
  42 
  43 // An InstanceKlass is the VM level representation of a Java class.
  44 // It contains all information needed for at class at execution runtime.
  45 
  46 //  InstanceKlass embedded field layout (after declared fields):
  47 //    [EMBEDDED Java vtable             ] size in words = vtable_len
  48 //    [EMBEDDED nonstatic oop-map blocks] size in words = nonstatic_oop_map_size
  49 //      The embedded nonstatic oop-map blocks are short pairs (offset, length)
  50 //      indicating where oops are located in instances of this klass.
  51 //    [EMBEDDED implementor of the interface] only exist for interface
  52 //    [EMBEDDED host klass        ] only exist for an anonymous class (JSR 292 enabled)
  53 
  54 
  55 // forward declaration for class -- see below for definition
  56 class SuperTypeClosure;
  57 class JNIid;
  58 class jniIdMapBase;
  59 class BreakpointInfo;
  60 class fieldDescriptor;
  61 class DepChange;




   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_OOPS_INSTANCEKLASS_HPP
  26 #define SHARE_VM_OOPS_INSTANCEKLASS_HPP
  27 
  28 #include "classfile/classLoaderData.hpp"
  29 #include "gc/shared/specialized_oop_closures.hpp"
  30 #include "memory/referenceType.hpp"

  31 #include "oops/annotations.hpp"
  32 #include "oops/constMethod.hpp"
  33 #include "oops/fieldInfo.hpp"
  34 #include "oops/instanceOop.hpp"
  35 #include "oops/klassVtable.hpp"
  36 #include "runtime/handles.hpp"
  37 #include "runtime/os.hpp"
  38 #include "trace/traceMacros.hpp"
  39 #include "utilities/accessFlags.hpp"
  40 #include "utilities/bitMap.inline.hpp"
  41 #include "utilities/macros.hpp"

  42 
  43 // An InstanceKlass is the VM level representation of a Java class.
  44 // It contains all information needed for at class at execution runtime.
  45 
  46 //  InstanceKlass embedded field layout (after declared fields):
  47 //    [EMBEDDED Java vtable             ] size in words = vtable_len
  48 //    [EMBEDDED nonstatic oop-map blocks] size in words = nonstatic_oop_map_size
  49 //      The embedded nonstatic oop-map blocks are short pairs (offset, length)
  50 //      indicating where oops are located in instances of this klass.
  51 //    [EMBEDDED implementor of the interface] only exist for interface
  52 //    [EMBEDDED host klass        ] only exist for an anonymous class (JSR 292 enabled)
  53 
  54 
  55 // forward declaration for class -- see below for definition
  56 class SuperTypeClosure;
  57 class JNIid;
  58 class jniIdMapBase;
  59 class BreakpointInfo;
  60 class fieldDescriptor;
  61 class DepChange;


< prev index next >