Mercurial > hg > truffle
diff src/share/vm/runtime/vmStructs.cpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | a9fed06c01d2 |
children | aed758eda82a |
line wrap: on
line diff
--- a/src/share/vm/runtime/vmStructs.cpp Fri Aug 31 16:39:35 2012 -0700 +++ b/src/share/vm/runtime/vmStructs.cpp Sat Sep 01 13:25:18 2012 -0400 @@ -51,48 +51,37 @@ #include "interpreter/bytecodeInterpreter.hpp" #include "interpreter/bytecodes.hpp" #include "interpreter/interpreter.hpp" +#include "memory/allocation.hpp" #include "memory/cardTableRS.hpp" -#include "memory/compactPermGen.hpp" #include "memory/defNewGeneration.hpp" #include "memory/freeBlockDictionary.hpp" #include "memory/genCollectedHeap.hpp" #include "memory/generation.hpp" #include "memory/generationSpec.hpp" #include "memory/heap.hpp" -#include "memory/permGen.hpp" #include "memory/space.hpp" #include "memory/tenuredGeneration.hpp" #include "memory/universe.hpp" #include "memory/watermark.hpp" #include "oops/arrayKlass.hpp" -#include "oops/arrayKlassKlass.hpp" #include "oops/arrayOop.hpp" -#include "oops/compiledICHolderKlass.hpp" -#include "oops/compiledICHolderOop.hpp" -#include "oops/constMethodKlass.hpp" -#include "oops/constMethodOop.hpp" -#include "oops/constantPoolKlass.hpp" -#include "oops/constantPoolOop.hpp" -#include "oops/cpCacheKlass.hpp" -#include "oops/cpCacheOop.hpp" +#include "oops/compiledICHolder.hpp" +#include "oops/constMethod.hpp" +#include "oops/constantPool.hpp" +#include "oops/cpCache.hpp" +#include "oops/instanceClassLoaderKlass.hpp" #include "oops/instanceKlass.hpp" #include "oops/instanceMirrorKlass.hpp" -#include "oops/instanceKlassKlass.hpp" #include "oops/instanceOop.hpp" #include "oops/klass.hpp" -#include "oops/klassOop.hpp" #include "oops/markOop.hpp" -#include "oops/methodDataKlass.hpp" -#include "oops/methodDataOop.hpp" -#include "oops/methodKlass.hpp" -#include "oops/methodOop.hpp" +#include "oops/methodData.hpp" +#include "oops/method.hpp" #include "oops/objArrayKlass.hpp" -#include "oops/objArrayKlassKlass.hpp" #include "oops/objArrayOop.hpp" #include "oops/oop.inline.hpp" #include "oops/symbol.hpp" #include "oops/typeArrayKlass.hpp" -#include "oops/typeArrayKlassKlass.hpp" #include "oops/typeArrayOop.hpp" #include "prims/jvmtiAgentThread.hpp" #include "runtime/arguments.hpp" @@ -107,6 +96,7 @@ #include "runtime/stubRoutines.hpp" #include "runtime/virtualspace.hpp" #include "runtime/vmStructs.hpp" +#include "utilities/array.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/hashtable.hpp" #ifdef TARGET_ARCH_x86 @@ -167,7 +157,6 @@ # include "vmStructs_bsd_zero.hpp" #endif #ifndef SERIALGC -#include "gc_implementation/concurrentMarkSweep/cmsPermGen.hpp" #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" @@ -178,7 +167,6 @@ #include "gc_implementation/parallelScavenge/asPSYoungGen.hpp" #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" #include "gc_implementation/parallelScavenge/psOldGen.hpp" -#include "gc_implementation/parallelScavenge/psPermGen.hpp" #include "gc_implementation/parallelScavenge/psVirtualspace.hpp" #include "gc_implementation/parallelScavenge/psYoungGen.hpp" #include "gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp" @@ -248,9 +236,9 @@ typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable; typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry; typedef Hashtable<oop, mtSymbol> StringHashtable; -typedef TwoOopHashtable<klassOop, mtClass> klassOopTwoOopHashtable; -typedef Hashtable<klassOop, mtClass> klassOopHashtable; -typedef HashtableEntry<klassOop, mtClass> klassHashtableEntry; +typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable; +typedef Hashtable<Klass*, mtClass> KlassHashtable; +typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry; typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; //-------------------------------------------------------------------------------- @@ -273,131 +261,126 @@ last_entry) \ \ /******************************************************************/ \ - /* OopDesc and Klass hierarchies (NOTE: methodDataOop incomplete) */ \ + /* OopDesc and Klass hierarchies (NOTE: MethodData* incomplete) */ \ /******************************************************************/ \ \ volatile_nonstatic_field(oopDesc, _mark, markOop) \ - volatile_nonstatic_field(oopDesc, _metadata._klass, wideKlassOop) \ + volatile_nonstatic_field(oopDesc, _metadata._klass, Klass*) \ volatile_nonstatic_field(oopDesc, _metadata._compressed_klass, narrowOop) \ static_field(oopDesc, _bs, BarrierSet*) \ nonstatic_field(arrayKlass, _dimension, int) \ - volatile_nonstatic_field(arrayKlass, _higher_dimension, klassOop) \ - volatile_nonstatic_field(arrayKlass, _lower_dimension, klassOop) \ + volatile_nonstatic_field(arrayKlass, _higher_dimension, Klass*) \ + volatile_nonstatic_field(arrayKlass, _lower_dimension, Klass*) \ nonstatic_field(arrayKlass, _vtable_len, int) \ nonstatic_field(arrayKlass, _alloc_size, juint) \ nonstatic_field(arrayKlass, _component_mirror, oop) \ - nonstatic_field(compiledICHolderKlass, _alloc_size, juint) \ - nonstatic_field(compiledICHolderOopDesc, _holder_method, methodOop) \ - nonstatic_field(compiledICHolderOopDesc, _holder_klass, klassOop) \ - nonstatic_field(constantPoolOopDesc, _tags, typeArrayOop) \ - nonstatic_field(constantPoolOopDesc, _cache, constantPoolCacheOop) \ - nonstatic_field(constantPoolOopDesc, _pool_holder, klassOop) \ - nonstatic_field(constantPoolOopDesc, _operands, typeArrayOop) \ - nonstatic_field(constantPoolOopDesc, _length, int) \ - nonstatic_field(constantPoolCacheOopDesc, _length, int) \ - nonstatic_field(constantPoolCacheOopDesc, _constant_pool, constantPoolOop) \ - nonstatic_field(instanceKlass, _array_klasses, klassOop) \ - nonstatic_field(instanceKlass, _methods, objArrayOop) \ - nonstatic_field(instanceKlass, _method_ordering, typeArrayOop) \ - nonstatic_field(instanceKlass, _local_interfaces, objArrayOop) \ - nonstatic_field(instanceKlass, _transitive_interfaces, objArrayOop) \ - nonstatic_field(instanceKlass, _fields, typeArrayOop) \ - nonstatic_field(instanceKlass, _java_fields_count, u2) \ - nonstatic_field(instanceKlass, _constants, constantPoolOop) \ - nonstatic_field(instanceKlass, _class_loader, oop) \ - nonstatic_field(instanceKlass, _protection_domain, oop) \ - nonstatic_field(instanceKlass, _signers, objArrayOop) \ - nonstatic_field(instanceKlass, _source_file_name, Symbol*) \ - nonstatic_field(instanceKlass, _source_debug_extension, char*) \ - nonstatic_field(instanceKlass, _inner_classes, typeArrayOop) \ - nonstatic_field(instanceKlass, _nonstatic_field_size, int) \ - nonstatic_field(instanceKlass, _static_field_size, int) \ - nonstatic_field(instanceKlass, _static_oop_field_count, u2) \ - nonstatic_field(instanceKlass, _nonstatic_oop_map_size, int) \ - nonstatic_field(instanceKlass, _is_marked_dependent, bool) \ - nonstatic_field(instanceKlass, _minor_version, u2) \ - nonstatic_field(instanceKlass, _major_version, u2) \ - nonstatic_field(instanceKlass, _init_state, u1) \ - nonstatic_field(instanceKlass, _init_thread, Thread*) \ - nonstatic_field(instanceKlass, _vtable_len, int) \ - nonstatic_field(instanceKlass, _itable_len, int) \ - nonstatic_field(instanceKlass, _reference_type, u1) \ - volatile_nonstatic_field(instanceKlass, _oop_map_cache, OopMapCache*) \ - nonstatic_field(instanceKlass, _jni_ids, JNIid*) \ - nonstatic_field(instanceKlass, _osr_nmethods_head, nmethod*) \ - nonstatic_field(instanceKlass, _breakpoints, BreakpointInfo*) \ - nonstatic_field(instanceKlass, _generic_signature, Symbol*) \ - nonstatic_field(instanceKlass, _methods_jmethod_ids, jmethodID*) \ - nonstatic_field(instanceKlass, _methods_cached_itable_indices, int*) \ - volatile_nonstatic_field(instanceKlass, _idnum_allocated_count, u2) \ - nonstatic_field(instanceKlass, _class_annotations, typeArrayOop) \ - nonstatic_field(instanceKlass, _fields_annotations, objArrayOop) \ - nonstatic_field(instanceKlass, _methods_annotations, objArrayOop) \ - nonstatic_field(instanceKlass, _methods_parameter_annotations, objArrayOop) \ - nonstatic_field(instanceKlass, _methods_default_annotations, objArrayOop) \ - nonstatic_field(instanceKlass, _dependencies, nmethodBucket*) \ + nonstatic_field(CompiledICHolder, _holder_method, Method*) \ + nonstatic_field(CompiledICHolder, _holder_klass, Klass*) \ + nonstatic_field(ConstantPool, _tags, Array<u1>*) \ + nonstatic_field(ConstantPool, _cache, ConstantPoolCache*) \ + nonstatic_field(ConstantPool, _pool_holder, Klass*) \ + nonstatic_field(ConstantPool, _operands, Array<u2>*) \ + nonstatic_field(ConstantPool, _length, int) \ + nonstatic_field(ConstantPool, _resolved_references, jobject) \ + nonstatic_field(ConstantPool, _reference_map, Array<u2>*) \ + nonstatic_field(ConstantPoolCache, _length, int) \ + nonstatic_field(ConstantPoolCache, _constant_pool, ConstantPool*) \ + nonstatic_field(InstanceKlass, _array_klasses, Klass*) \ + nonstatic_field(InstanceKlass, _methods, Array<Method*>*) \ + nonstatic_field(InstanceKlass, _local_interfaces, Array<Klass*>*) \ + nonstatic_field(InstanceKlass, _transitive_interfaces, Array<Klass*>*) \ + nonstatic_field(InstanceKlass, _fields, Array<u2>*) \ + nonstatic_field(InstanceKlass, _java_fields_count, u2) \ + nonstatic_field(InstanceKlass, _constants, ConstantPool*) \ + nonstatic_field(InstanceKlass, _class_loader_data, ClassLoaderData*) \ + nonstatic_field(InstanceKlass, _protection_domain, oop) \ + nonstatic_field(InstanceKlass, _signers, objArrayOop) \ + nonstatic_field(InstanceKlass, _source_file_name, Symbol*) \ + nonstatic_field(InstanceKlass, _source_debug_extension, char*) \ + nonstatic_field(InstanceKlass, _inner_classes, Array<jushort>*) \ + nonstatic_field(InstanceKlass, _nonstatic_field_size, int) \ + nonstatic_field(InstanceKlass, _static_field_size, int) \ + nonstatic_field(InstanceKlass, _static_oop_field_count, u2) \ + nonstatic_field(InstanceKlass, _nonstatic_oop_map_size, int) \ + nonstatic_field(InstanceKlass, _is_marked_dependent, bool) \ + nonstatic_field(InstanceKlass, _minor_version, u2) \ + nonstatic_field(InstanceKlass, _major_version, u2) \ + nonstatic_field(InstanceKlass, _init_state, u1) \ + nonstatic_field(InstanceKlass, _init_thread, Thread*) \ + nonstatic_field(InstanceKlass, _vtable_len, int) \ + nonstatic_field(InstanceKlass, _itable_len, int) \ + nonstatic_field(InstanceKlass, _reference_type, u1) \ + volatile_nonstatic_field(InstanceKlass, _oop_map_cache, OopMapCache*) \ + nonstatic_field(InstanceKlass, _jni_ids, JNIid*) \ + nonstatic_field(InstanceKlass, _osr_nmethods_head, nmethod*) \ + nonstatic_field(InstanceKlass, _breakpoints, BreakpointInfo*) \ + nonstatic_field(InstanceKlass, _generic_signature, Symbol*) \ + nonstatic_field(InstanceKlass, _methods_jmethod_ids, jmethodID*) \ + nonstatic_field(InstanceKlass, _methods_cached_itable_indices, int*) \ + volatile_nonstatic_field(InstanceKlass, _idnum_allocated_count, u2) \ + nonstatic_field(InstanceKlass, _annotations, Annotations*) \ + nonstatic_field(InstanceKlass, _dependencies, nmethodBucket*) \ nonstatic_field(nmethodBucket, _nmethod, nmethod*) \ nonstatic_field(nmethodBucket, _count, int) \ nonstatic_field(nmethodBucket, _next, nmethodBucket*) \ + nonstatic_field(InstanceKlass, _method_ordering, Array<int>*) \ nonstatic_field(Klass, _super_check_offset, juint) \ - nonstatic_field(Klass, _secondary_super_cache, klassOop) \ - nonstatic_field(Klass, _secondary_supers, objArrayOop) \ - nonstatic_field(Klass, _primary_supers[0], klassOop) \ + nonstatic_field(Klass, _secondary_super_cache, Klass*) \ + nonstatic_field(Klass, _secondary_supers, Array<Klass*>*) \ + nonstatic_field(Klass, _primary_supers[0], Klass*) \ nonstatic_field(Klass, _java_mirror, oop) \ nonstatic_field(Klass, _modifier_flags, jint) \ - nonstatic_field(Klass, _super, klassOop) \ + nonstatic_field(Klass, _super, Klass*) \ nonstatic_field(Klass, _layout_helper, jint) \ nonstatic_field(Klass, _name, Symbol*) \ nonstatic_field(Klass, _access_flags, AccessFlags) \ - nonstatic_field(Klass, _subklass, klassOop) \ - nonstatic_field(Klass, _next_sibling, klassOop) \ + nonstatic_field(Klass, _subklass, Klass*) \ + nonstatic_field(Klass, _next_sibling, Klass*) \ nonproduct_nonstatic_field(Klass, _verify_count, int) \ nonstatic_field(Klass, _alloc_count, juint) \ - nonstatic_field(klassKlass, _alloc_size, juint) \ - nonstatic_field(methodKlass, _alloc_size, juint) \ - nonstatic_field(methodDataOopDesc, _size, int) \ - nonstatic_field(methodDataOopDesc, _method, methodOop) \ - nonstatic_field(methodDataOopDesc, _data_size, int) \ - nonstatic_field(methodDataOopDesc, _data[0], intptr_t) \ - nonstatic_field(methodDataOopDesc, _nof_decompiles, uint) \ - nonstatic_field(methodDataOopDesc, _nof_overflow_recompiles, uint) \ - nonstatic_field(methodDataOopDesc, _nof_overflow_traps, uint) \ - nonstatic_field(methodDataOopDesc, _eflags, intx) \ - nonstatic_field(methodDataOopDesc, _arg_local, intx) \ - nonstatic_field(methodDataOopDesc, _arg_stack, intx) \ - nonstatic_field(methodDataOopDesc, _arg_returned, intx) \ - nonstatic_field(methodOopDesc, _constMethod, constMethodOop) \ - nonstatic_field(methodOopDesc, _method_data, methodDataOop) \ - nonstatic_field(methodOopDesc, _interpreter_invocation_count, int) \ - nonstatic_field(methodOopDesc, _access_flags, AccessFlags) \ - nonstatic_field(methodOopDesc, _vtable_index, int) \ - nonstatic_field(methodOopDesc, _method_size, u2) \ - nonstatic_field(methodOopDesc, _max_stack, u2) \ - nonstatic_field(methodOopDesc, _max_locals, u2) \ - nonstatic_field(methodOopDesc, _size_of_parameters, u2) \ - nonstatic_field(methodOopDesc, _interpreter_throwout_count, u2) \ - nonstatic_field(methodOopDesc, _number_of_breakpoints, u2) \ - nonstatic_field(methodOopDesc, _invocation_counter, InvocationCounter) \ - nonstatic_field(methodOopDesc, _backedge_counter, InvocationCounter) \ - nonproduct_nonstatic_field(methodOopDesc, _compiled_invocation_count, int) \ - volatile_nonstatic_field(methodOopDesc, _code, nmethod*) \ - nonstatic_field(methodOopDesc, _i2i_entry, address) \ - nonstatic_field(methodOopDesc, _adapter, AdapterHandlerEntry*) \ - volatile_nonstatic_field(methodOopDesc, _from_compiled_entry, address) \ - volatile_nonstatic_field(methodOopDesc, _from_interpreted_entry, address) \ - volatile_nonstatic_field(constMethodOopDesc, _fingerprint, uint64_t) \ - nonstatic_field(constMethodOopDesc, _constants, constantPoolOop) \ - nonstatic_field(constMethodOopDesc, _stackmap_data, typeArrayOop) \ - nonstatic_field(constMethodOopDesc, _constMethod_size, int) \ - nonstatic_field(constMethodOopDesc, _interpreter_kind, jbyte) \ - nonstatic_field(constMethodOopDesc, _flags, jbyte) \ - nonstatic_field(constMethodOopDesc, _code_size, u2) \ - nonstatic_field(constMethodOopDesc, _name_index, u2) \ - nonstatic_field(constMethodOopDesc, _signature_index, u2) \ - nonstatic_field(constMethodOopDesc, _method_idnum, u2) \ - nonstatic_field(constMethodOopDesc, _generic_signature_index, u2) \ - nonstatic_field(objArrayKlass, _element_klass, klassOop) \ - nonstatic_field(objArrayKlass, _bottom_klass, klassOop) \ + nonstatic_field(MethodData, _size, int) \ + nonstatic_field(MethodData, _method, Method*) \ + nonstatic_field(MethodData, _data_size, int) \ + nonstatic_field(MethodData, _data[0], intptr_t) \ + nonstatic_field(MethodData, _nof_decompiles, uint) \ + nonstatic_field(MethodData, _nof_overflow_recompiles, uint) \ + nonstatic_field(MethodData, _nof_overflow_traps, uint) \ + nonstatic_field(MethodData, _eflags, intx) \ + nonstatic_field(MethodData, _arg_local, intx) \ + nonstatic_field(MethodData, _arg_stack, intx) \ + nonstatic_field(MethodData, _arg_returned, intx) \ + nonstatic_field(Method, _constMethod, ConstMethod*) \ + nonstatic_field(Method, _method_data, MethodData*) \ + nonstatic_field(Method, _interpreter_invocation_count, int) \ + nonstatic_field(Method, _access_flags, AccessFlags) \ + nonstatic_field(Method, _vtable_index, int) \ + nonstatic_field(Method, _method_size, u2) \ + nonstatic_field(Method, _max_stack, u2) \ + nonstatic_field(Method, _max_locals, u2) \ + nonstatic_field(Method, _size_of_parameters, u2) \ + nonstatic_field(Method, _interpreter_throwout_count, u2) \ + nonstatic_field(Method, _number_of_breakpoints, u2) \ + nonstatic_field(Method, _invocation_counter, InvocationCounter) \ + nonstatic_field(Method, _backedge_counter, InvocationCounter) \ + nonproduct_nonstatic_field(Method, _compiled_invocation_count, int) \ + volatile_nonstatic_field(Method, _code, nmethod*) \ + nonstatic_field(Method, _i2i_entry, address) \ + nonstatic_field(Method, _adapter, AdapterHandlerEntry*) \ + volatile_nonstatic_field(Method, _from_compiled_entry, address) \ + volatile_nonstatic_field(Method, _from_interpreted_entry, address) \ + volatile_nonstatic_field(ConstMethod, _fingerprint, uint64_t) \ + nonstatic_field(ConstMethod, _constants, ConstantPool*) \ + nonstatic_field(ConstMethod, _stackmap_data, Array<u1>*) \ + nonstatic_field(ConstMethod, _constMethod_size, int) \ + nonstatic_field(ConstMethod, _interpreter_kind, jbyte) \ + nonstatic_field(ConstMethod, _flags, jbyte) \ + nonstatic_field(ConstMethod, _code_size, u2) \ + nonstatic_field(ConstMethod, _name_index, u2) \ + nonstatic_field(ConstMethod, _signature_index, u2) \ + nonstatic_field(ConstMethod, _method_idnum, u2) \ + nonstatic_field(ConstMethod, _generic_signature_index, u2) \ + nonstatic_field(objArrayKlass, _element_klass, Klass*) \ + nonstatic_field(objArrayKlass, _bottom_klass, Klass*) \ volatile_nonstatic_field(Symbol, _refcount, int) \ nonstatic_field(Symbol, _identity_hash, int) \ nonstatic_field(Symbol, _length, unsigned short) \ @@ -409,7 +392,7 @@ /***********************/ \ \ volatile_nonstatic_field(ConstantPoolCacheEntry, _indices, intx) \ - volatile_nonstatic_field(ConstantPoolCacheEntry, _f1, oop) \ + nonstatic_field(ConstantPoolCacheEntry, _f1, volatile Metadata*) \ volatile_nonstatic_field(ConstantPoolCacheEntry, _f2, intx) \ volatile_nonstatic_field(ConstantPoolCacheEntry, _flags, intx) \ \ @@ -437,40 +420,24 @@ /* JNI IDs */ \ /***********/ \ \ - nonstatic_field(JNIid, _holder, klassOop) \ + nonstatic_field(JNIid, _holder, Klass*) \ nonstatic_field(JNIid, _next, JNIid*) \ nonstatic_field(JNIid, _offset, int) \ /************/ \ /* Universe */ \ /************/ \ \ - static_field(Universe, _boolArrayKlassObj, klassOop) \ - static_field(Universe, _byteArrayKlassObj, klassOop) \ - static_field(Universe, _charArrayKlassObj, klassOop) \ - static_field(Universe, _intArrayKlassObj, klassOop) \ - static_field(Universe, _shortArrayKlassObj, klassOop) \ - static_field(Universe, _longArrayKlassObj, klassOop) \ - static_field(Universe, _singleArrayKlassObj, klassOop) \ - static_field(Universe, _doubleArrayKlassObj, klassOop) \ - static_field(Universe, _methodKlassObj, klassOop) \ - static_field(Universe, _constMethodKlassObj, klassOop) \ - static_field(Universe, _methodDataKlassObj, klassOop) \ - static_field(Universe, _klassKlassObj, klassOop) \ - static_field(Universe, _arrayKlassKlassObj, klassOop) \ - static_field(Universe, _objArrayKlassKlassObj, klassOop) \ - static_field(Universe, _typeArrayKlassKlassObj, klassOop) \ - static_field(Universe, _instanceKlassKlassObj, klassOop) \ - static_field(Universe, _constantPoolKlassObj, klassOop) \ - static_field(Universe, _constantPoolCacheKlassObj, klassOop) \ - static_field(Universe, _compiledICHolderKlassObj, klassOop) \ - static_field(Universe, _systemObjArrayKlassObj, klassOop) \ + static_field(Universe, _boolArrayKlassObj, Klass*) \ + static_field(Universe, _byteArrayKlassObj, Klass*) \ + static_field(Universe, _charArrayKlassObj, Klass*) \ + static_field(Universe, _intArrayKlassObj, Klass*) \ + static_field(Universe, _shortArrayKlassObj, Klass*) \ + static_field(Universe, _longArrayKlassObj, Klass*) \ + static_field(Universe, _singleArrayKlassObj, Klass*) \ + static_field(Universe, _doubleArrayKlassObj, Klass*) \ static_field(Universe, _mirrors[0], oop) \ static_field(Universe, _main_thread_group, oop) \ static_field(Universe, _system_thread_group, oop) \ - static_field(Universe, _the_empty_byte_array, typeArrayOop) \ - static_field(Universe, _the_empty_short_array, typeArrayOop) \ - static_field(Universe, _the_empty_int_array, typeArrayOop) \ - static_field(Universe, _the_empty_system_obj_array, objArrayOop) \ static_field(Universe, _the_empty_class_klass_array, objArrayOop) \ static_field(Universe, _out_of_memory_error_java_heap, oop) \ static_field(Universe, _out_of_memory_error_perm_gen, oop) \ @@ -528,7 +495,6 @@ nonstatic_field(CardTableRS, _ct_bs, CardTableModRefBSForCTRS*) \ \ nonstatic_field(CollectedHeap, _reserved, MemRegion) \ - nonstatic_field(SharedHeap, _perm_gen, PermGen*) \ nonstatic_field(CollectedHeap, _barrier_set, BarrierSet*) \ nonstatic_field(CollectedHeap, _defer_initial_card_mark, bool) \ nonstatic_field(CollectedHeap, _is_gc_active, bool) \ @@ -536,7 +502,6 @@ nonstatic_field(CompactibleSpace, _first_dead, HeapWord*) \ nonstatic_field(CompactibleSpace, _end_of_live, HeapWord*) \ \ - nonstatic_field(CompactingPermGen, _gen, OneContigSpaceCardGeneration*) \ \ nonstatic_field(ContiguousSpace, _top, HeapWord*) \ nonstatic_field(ContiguousSpace, _concurrent_iteration_safe_limit, HeapWord*) \ @@ -579,30 +544,7 @@ nonstatic_field(OneContigSpaceCardGeneration, _the_space, ContiguousSpace*) \ nonstatic_field(OneContigSpaceCardGeneration, _last_gc, WaterMark) \ \ - nonstatic_field(CompactingPermGenGen, _ro_vs, VirtualSpace) \ - nonstatic_field(CompactingPermGenGen, _rw_vs, VirtualSpace) \ - nonstatic_field(CompactingPermGenGen, _md_vs, VirtualSpace) \ - nonstatic_field(CompactingPermGenGen, _mc_vs, VirtualSpace) \ - nonstatic_field(CompactingPermGenGen, _ro_space, OffsetTableContigSpace*) \ - nonstatic_field(CompactingPermGenGen, _rw_space, OffsetTableContigSpace*) \ - static_field(CompactingPermGenGen, unshared_bottom, HeapWord*) \ - static_field(CompactingPermGenGen, unshared_end, HeapWord*) \ - static_field(CompactingPermGenGen, shared_bottom, HeapWord*) \ - static_field(CompactingPermGenGen, readonly_bottom, HeapWord*) \ - static_field(CompactingPermGenGen, readonly_end, HeapWord*) \ - static_field(CompactingPermGenGen, readwrite_bottom, HeapWord*) \ - static_field(CompactingPermGenGen, readwrite_end, HeapWord*) \ - static_field(CompactingPermGenGen, miscdata_bottom, HeapWord*) \ - static_field(CompactingPermGenGen, miscdata_end, HeapWord*) \ - static_field(CompactingPermGenGen, misccode_bottom, HeapWord*) \ - static_field(CompactingPermGenGen, misccode_end, HeapWord*) \ - static_field(CompactingPermGenGen, shared_end, HeapWord*) \ \ - nonstatic_field(PermGen, _capacity_expansion_limit, size_t) \ - \ - nonstatic_field(PermanentGenerationSpec, _name, PermGen::Name) \ - nonstatic_field(PermanentGenerationSpec, _init_size, size_t) \ - nonstatic_field(PermanentGenerationSpec, _max_size, size_t) \ \ nonstatic_field(Space, _bottom, HeapWord*) \ nonstatic_field(Space, _end, HeapWord*) \ @@ -677,40 +619,40 @@ static_field(SystemDictionary, _shared_dictionary, Dictionary*) \ static_field(SystemDictionary, _system_loader_lock_obj, oop) \ static_field(SystemDictionary, _loader_constraints, LoaderConstraintTable*) \ - static_field(SystemDictionary, WK_KLASS(Object_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(String_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Class_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Cloneable_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(ClassLoader_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Serializable_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(System_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Throwable_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(ThreadDeath_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Error_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Exception_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(RuntimeException_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(ClassNotFoundException_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(NoClassDefFoundError_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(LinkageError_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(ClassCastException_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(ArrayStoreException_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(VirtualMachineError_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(OutOfMemoryError_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(StackOverflowError_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(ProtectionDomain_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(AccessControlContext_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Reference_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(SoftReference_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(WeakReference_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(FinalReference_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(PhantomReference_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Finalizer_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Thread_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(ThreadGroup_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(Properties_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(StringBuffer_klass), klassOop) \ - static_field(SystemDictionary, WK_KLASS(MethodHandle_klass), klassOop) \ - static_field(SystemDictionary, _box_klasses[0], klassOop) \ + static_field(SystemDictionary, WK_KLASS(Object_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(String_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Class_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Cloneable_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(ClassLoader_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Serializable_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(System_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Throwable_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(ThreadDeath_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Error_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Exception_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(RuntimeException_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(ClassNotFoundException_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(NoClassDefFoundError_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(LinkageError_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(ClassCastException_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(ArrayStoreException_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(VirtualMachineError_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(OutOfMemoryError_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(StackOverflowError_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(ProtectionDomain_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(AccessControlContext_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Reference_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(SoftReference_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(WeakReference_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(FinalReference_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(PhantomReference_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Finalizer_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Thread_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(ThreadGroup_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(Properties_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(StringBuffer_klass), Klass*) \ + static_field(SystemDictionary, WK_KLASS(MethodHandle_klass), Klass*) \ + static_field(SystemDictionary, _box_klasses[0], Klass*) \ static_field(SystemDictionary, _java_system_loader, oop) \ \ /*************/ \ @@ -748,12 +690,12 @@ /* DictionaryEntry */ \ /*******************/ \ \ - nonstatic_field(DictionaryEntry, _loader, oop) \ + nonstatic_field(DictionaryEntry, _loader_data, ClassLoaderData*) \ nonstatic_field(DictionaryEntry, _pd_set, ProtectionDomainEntry*) \ \ /********************/ \ \ - nonstatic_field(PlaceholderEntry, _loader, oop) \ + nonstatic_field(PlaceholderEntry, _loader_data, ClassLoaderData*) \ \ /**************************/ \ /* ProctectionDomainEntry */ \ @@ -769,7 +711,13 @@ nonstatic_field(LoaderConstraintEntry, _name, Symbol*) \ nonstatic_field(LoaderConstraintEntry, _num_loaders, int) \ nonstatic_field(LoaderConstraintEntry, _max_loaders, int) \ - nonstatic_field(LoaderConstraintEntry, _loaders, oop*) \ + nonstatic_field(LoaderConstraintEntry, _loaders, ClassLoaderData**) \ + \ + nonstatic_field(ClassLoaderData, _class_loader, oop) \ + nonstatic_field(ClassLoaderData, _next, ClassLoaderData*) \ + \ + static_field(ClassLoaderDataGraph, _head, ClassLoaderData*) \ + nonstatic_field(ClassLoaderDataGraph, _unloading, ClassLoaderData*) \ \ /*******************/ \ /* GrowableArrays */ \ @@ -853,7 +801,7 @@ /* NMethods (NOTE: incomplete, but only a little) */ \ /**************************************************/ \ \ - nonstatic_field(nmethod, _method, methodOop) \ + nonstatic_field(nmethod, _method, Method*) \ nonstatic_field(nmethod, _entry_bci, int) \ nonstatic_field(nmethod, _osr_link, nmethod*) \ nonstatic_field(nmethod, _scavenge_root_link, nmethod*) \ @@ -866,6 +814,7 @@ nonstatic_field(nmethod, _stub_offset, int) \ nonstatic_field(nmethod, _consts_offset, int) \ nonstatic_field(nmethod, _oops_offset, int) \ + nonstatic_field(nmethod, _metadata_offset, int) \ nonstatic_field(nmethod, _scopes_data_offset, int) \ nonstatic_field(nmethod, _scopes_pcs_offset, int) \ nonstatic_field(nmethod, _dependencies_offset, int) \ @@ -918,7 +867,7 @@ nonstatic_field(JavaThread, _threadObj, oop) \ nonstatic_field(JavaThread, _anchor, JavaFrameAnchor) \ nonstatic_field(JavaThread, _vm_result, oop) \ - nonstatic_field(JavaThread, _vm_result_2, oop) \ + nonstatic_field(JavaThread, _vm_result_2, Metadata*) \ nonstatic_field(JavaThread, _pending_async_exception, oop) \ volatile_nonstatic_field(JavaThread, _exception_oop, oop) \ volatile_nonstatic_field(JavaThread, _exception_pc, address) \ @@ -1008,11 +957,13 @@ nonstatic_field(ciEnv, _task, CompileTask*) \ nonstatic_field(ciEnv, _arena, Arena*) \ \ + nonstatic_field(ciBaseObject, _ident, uint) \ + \ nonstatic_field(ciObject, _handle, jobject) \ nonstatic_field(ciObject, _klass, ciKlass*) \ - nonstatic_field(ciObject, _ident, uint) \ \ - nonstatic_field(ciSymbol, _ident, uint) \ + nonstatic_field(ciMetadata, _metadata, Metadata*) \ + \ nonstatic_field(ciSymbol, _symbol, Symbol*) \ \ nonstatic_field(ciType, _basic_type, BasicType) \ @@ -1024,7 +975,7 @@ nonstatic_field(ciObjArrayKlass, _element_klass, ciKlass*) \ nonstatic_field(ciObjArrayKlass, _base_element_klass, ciKlass*) \ \ - nonstatic_field(ciInstanceKlass, _init_state, instanceKlass::ClassState) \ + nonstatic_field(ciInstanceKlass, _init_state, InstanceKlass::ClassState) \ nonstatic_field(ciInstanceKlass, _is_shared, bool) \ \ nonstatic_field(ciMethod, _interpreter_invocation_count, int) \ @@ -1040,7 +991,7 @@ nonstatic_field(ciMethodData, _arg_stack, intx) \ nonstatic_field(ciMethodData, _arg_returned, intx) \ nonstatic_field(ciMethodData, _current_mileage, int) \ - nonstatic_field(ciMethodData, _orig, methodDataOopDesc) \ + nonstatic_field(ciMethodData, _orig, MethodData) \ \ nonstatic_field(ciField, _holder, ciInstanceKlass*) \ nonstatic_field(ciField, _name, ciSymbol*) \ @@ -1049,7 +1000,7 @@ nonstatic_field(ciField, _is_constant, bool) \ nonstatic_field(ciField, _constant_value, ciConstant) \ \ - nonstatic_field(ciObjectFactory, _ci_objects, GrowableArray<ciObject*>*) \ + nonstatic_field(ciObjectFactory, _ci_metadata, GrowableArray<ciMetadata*>*) \ nonstatic_field(ciObjectFactory, _symbols, GrowableArray<ciSymbol*>*) \ nonstatic_field(ciObjectFactory, _unloaded_methods, GrowableArray<ciMethod*>*) \ \ @@ -1234,6 +1185,17 @@ static_field(Arguments, _num_jvm_args, int) \ static_field(Arguments, _java_command, char*) \ \ + /************/ \ + /* Array<T> */ \ + /************/ \ + \ + nonstatic_field(Array<int>, _length, int) \ + unchecked_nonstatic_field(Array<int>, _data, sizeof(int)) \ + unchecked_nonstatic_field(Array<u1>, _data, sizeof(u1)) \ + unchecked_nonstatic_field(Array<u2>, _data, sizeof(u2)) \ + unchecked_nonstatic_field(Array<Method*>, _data, sizeof(Method*)) \ + unchecked_nonstatic_field(Array<Klass*>, _data, sizeof(Klass*)) \ + \ /*********************************/ \ /* java_lang_Class fields */ \ /*********************************/ \ @@ -1248,7 +1210,7 @@ /* Miscellaneous fields */ \ /************************/ \ \ - nonstatic_field(CompileTask, _method, jobject) \ + nonstatic_field(CompileTask, _method, Method*) \ nonstatic_field(CompileTask, _osr_bci, int) \ nonstatic_field(CompileTask, _comp_level, int) \ nonstatic_field(CompileTask, _compile_id, uint) \ @@ -1262,7 +1224,7 @@ \ nonstatic_field(vframeArrayElement, _frame, frame) \ nonstatic_field(vframeArrayElement, _bci, int) \ - nonstatic_field(vframeArrayElement, _method, methodOop) \ + nonstatic_field(vframeArrayElement, _method, Method*) \ \ nonstatic_field(AccessFlags, _flags, jint) \ nonstatic_field(elapsedTimer, _counter, jlong) \ @@ -1360,14 +1322,15 @@ declare_unsigned_integer_type(unsigned long) \ /* The compiler thinks this is a different type than */ \ /* unsigned short on Win32 */ \ + declare_unsigned_integer_type(u1) \ declare_unsigned_integer_type(u2) \ - declare_unsigned_integer_type(u1) \ declare_unsigned_integer_type(unsigned) \ \ /*****************************/ \ /* C primitive pointer types */ \ /*****************************/ \ \ + declare_toplevel_type(void*) \ declare_toplevel_type(int*) \ declare_toplevel_type(char*) \ declare_toplevel_type(char**) \ @@ -1389,44 +1352,40 @@ declare_unsigned_integer_type(uint32_t) \ declare_unsigned_integer_type(uint64_t) \ \ - /*******************************************************************************/ \ - /* OopDesc and Klass hierarchies (NOTE: missing methodDataOop-related classes) */ \ - /*******************************************************************************/ \ + /******************************************/ \ + /* OopDesc hierarchy (NOTE: some missing) */ \ + /******************************************/ \ \ declare_toplevel_type(oopDesc) \ - declare_toplevel_type(Klass_vtbl) \ - declare_type(Klass, Klass_vtbl) \ + declare_type(arrayOopDesc, oopDesc) \ + declare_type(objArrayOopDesc, arrayOopDesc) \ + declare_type(instanceOopDesc, oopDesc) \ + declare_type(markOopDesc, oopDesc) \ + \ + /**************************************************/ \ + /* MetadataOopDesc hierarchy (NOTE: some missing) */ \ + /**************************************************/ \ + \ + declare_toplevel_type(CompiledICHolder) \ + declare_toplevel_type(MetaspaceObj) \ + declare_type(Metadata, MetaspaceObj) \ + declare_type(Klass, Metadata) \ declare_type(arrayKlass, Klass) \ - declare_type(arrayKlassKlass, klassKlass) \ - declare_type(arrayOopDesc, oopDesc) \ - declare_type(compiledICHolderKlass, Klass) \ - declare_type(compiledICHolderOopDesc, oopDesc) \ - declare_type(constantPoolKlass, Klass) \ - declare_type(constantPoolOopDesc, oopDesc) \ - declare_type(constantPoolCacheKlass, Klass) \ - declare_type(constantPoolCacheOopDesc, oopDesc) \ - declare_type(instanceKlass, Klass) \ - declare_type(instanceKlassKlass, klassKlass) \ - declare_type(instanceOopDesc, oopDesc) \ - declare_type(instanceMirrorKlass, instanceKlass) \ - declare_type(instanceRefKlass, instanceKlass) \ - declare_type(klassKlass, Klass) \ - declare_type(klassOopDesc, oopDesc) \ - declare_type(markOopDesc, oopDesc) \ - declare_type(methodDataKlass, Klass) \ - declare_type(methodDataOopDesc, oopDesc) \ - declare_type(methodKlass, Klass) \ - declare_type(constMethodKlass, Klass) \ - declare_type(methodOopDesc, oopDesc) \ declare_type(objArrayKlass, arrayKlass) \ - declare_type(objArrayKlassKlass, arrayKlassKlass) \ - declare_type(objArrayOopDesc, arrayOopDesc) \ - declare_type(constMethodOopDesc, oopDesc) \ declare_type(typeArrayKlass, arrayKlass) \ - declare_type(typeArrayKlassKlass, arrayKlassKlass) \ - declare_type(typeArrayOopDesc, arrayOopDesc) \ + declare_type(InstanceKlass, Klass) \ + declare_type(instanceClassLoaderKlass, InstanceKlass) \ + declare_type(instanceMirrorKlass, InstanceKlass) \ + declare_type(instanceRefKlass, InstanceKlass) \ + declare_type(ConstantPool, Metadata) \ + declare_type(ConstantPoolCache, MetaspaceObj) \ + declare_type(MethodData, Metadata) \ + declare_type(Method, Metadata) \ + declare_type(ConstMethod, MetaspaceObj) \ + \ declare_toplevel_type(Symbol) \ declare_toplevel_type(Symbol*) \ + declare_toplevel_type(volatile Metadata*) \ \ declare_toplevel_type(nmethodBucket) \ \ @@ -1434,17 +1393,10 @@ /* Oops */ \ /********/ \ \ - declare_oop_type(constantPoolOop) \ - declare_oop_type(constantPoolCacheOop) \ - declare_oop_type(klassOop) \ declare_oop_type(markOop) \ - declare_oop_type(methodOop) \ - declare_oop_type(methodDataOop) \ declare_oop_type(objArrayOop) \ declare_oop_type(oop) \ declare_oop_type(narrowOop) \ - declare_oop_type(wideKlassOop) \ - declare_oop_type(constMethodOop) \ declare_oop_type(typeArrayOop) \ \ /*************************************/ \ @@ -1455,6 +1407,9 @@ declare_toplevel_type(LocalVariableTableElement) \ declare_toplevel_type(ExceptionTableElement) \ \ + declare_toplevel_type(ClassLoaderData) \ + declare_toplevel_type(ClassLoaderDataGraph) \ + \ /******************************************/ \ /* Generation and space hierarchies */ \ /* (needed for run-time type information) */ \ @@ -1468,7 +1423,6 @@ declare_type(CardGeneration, Generation) \ declare_type(OneContigSpaceCardGeneration, CardGeneration) \ declare_type(TenuredGeneration, OneContigSpaceCardGeneration) \ - declare_type(CompactingPermGenGen, OneContigSpaceCardGeneration) \ declare_toplevel_type(Space) \ declare_toplevel_type(BitMap) \ declare_type(CompactibleSpace, Space) \ @@ -1476,9 +1430,6 @@ declare_type(EdenSpace, ContiguousSpace) \ declare_type(OffsetTableContigSpace, ContiguousSpace) \ declare_type(TenuredSpace, OffsetTableContigSpace) \ - declare_type(ContigPermSpace, OffsetTableContigSpace) \ - declare_toplevel_type(PermGen) \ - declare_type(CompactingPermGen, PermGen) \ declare_toplevel_type(BarrierSet) \ declare_type(ModRefBarrierSet, BarrierSet) \ declare_type(CardTableModRefBS, ModRefBarrierSet) \ @@ -1498,7 +1449,6 @@ declare_toplevel_type(GenerationSpec) \ declare_toplevel_type(HeapWord) \ declare_toplevel_type(MemRegion) \ - declare_toplevel_type(PermanentGenerationSpec) \ declare_toplevel_type(ThreadLocalAllocBuffer) \ declare_toplevel_type(VirtualSpace) \ declare_toplevel_type(WaterMark) \ @@ -1524,7 +1474,6 @@ declare_toplevel_type(MemRegion*) \ declare_toplevel_type(OffsetTableContigSpace*) \ declare_toplevel_type(OneContigSpaceCardGeneration*) \ - declare_toplevel_type(PermGen*) \ declare_toplevel_type(Space*) \ declare_toplevel_type(ThreadLocalAllocBuffer*) \ \ @@ -1545,15 +1494,15 @@ declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \ declare_type(SymbolTable, SymbolHashtable) \ declare_type(StringTable, StringHashtable) \ - declare_type(LoaderConstraintTable, klassOopHashtable) \ - declare_type(klassOopTwoOopHashtable, klassOopHashtable) \ - declare_type(Dictionary, klassOopTwoOopHashtable) \ + declare_type(LoaderConstraintTable, KlassHashtable) \ + declare_type(KlassTwoOopHashtable, KlassHashtable) \ + declare_type(Dictionary, KlassTwoOopHashtable) \ declare_type(PlaceholderTable, SymbolTwoOopHashtable) \ declare_toplevel_type(BasicHashtableEntry<mtInternal>) \ declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \ - declare_type(DictionaryEntry, klassHashtableEntry) \ + declare_type(DictionaryEntry, KlassHashtableEntry) \ declare_type(PlaceholderEntry, SymbolHashtableEntry) \ - declare_type(LoaderConstraintEntry, klassHashtableEntry) \ + declare_type(LoaderConstraintEntry, KlassHashtableEntry) \ declare_toplevel_type(HashtableBucket<mtInternal>) \ declare_toplevel_type(SystemDictionary) \ declare_toplevel_type(vmSymbols) \ @@ -2007,24 +1956,19 @@ declare_toplevel_type(ciObjectFactory) \ declare_toplevel_type(ciConstant) \ declare_toplevel_type(ciField) \ - declare_toplevel_type(void*) \ - declare_toplevel_type(ciObject) \ - declare_type(ciMethod, ciObject) \ - declare_type(ciMethodData, ciObject) \ - declare_type(ciType, ciObject) \ + declare_toplevel_type(ciSymbol) \ + declare_toplevel_type(ciBaseObject) \ + declare_type(ciObject, ciBaseObject) \ declare_type(ciInstance, ciObject) \ - declare_toplevel_type(ciSymbol) \ + declare_type(ciMetadata, ciBaseObject) \ + declare_type(ciMethod, ciMetadata) \ + declare_type(ciMethodData, ciMetadata) \ + declare_type(ciType, ciMetadata) \ declare_type(ciKlass, ciType) \ declare_type(ciInstanceKlass, ciKlass) \ declare_type(ciArrayKlass, ciKlass) \ declare_type(ciTypeArrayKlass, ciArrayKlass) \ declare_type(ciObjArrayKlass, ciArrayKlass) \ - declare_type(ciMethodKlass, ciKlass) \ - declare_type(ciKlassKlass, ciKlass) \ - declare_type(ciInstanceKlassKlass, ciKlassKlass) \ - declare_type(ciArrayKlassKlass, ciKlassKlass) \ - declare_type(ciTypeArrayKlassKlass, ciArrayKlassKlass) \ - declare_type(ciObjArrayKlassKlass, ciArrayKlassKlass) \ \ /********************/ \ /* -XX flags */ \ @@ -2060,14 +2004,20 @@ \ declare_integer_type(Bytecodes::Code) \ declare_integer_type(Generation::Name) \ - declare_integer_type(instanceKlass::ClassState) \ + declare_integer_type(InstanceKlass::ClassState) \ declare_integer_type(JavaThreadState) \ declare_integer_type(Location::Type) \ declare_integer_type(Location::Where) \ - declare_integer_type(PermGen::Name) \ declare_integer_type(FlagValueOrigin) \ COMPILER2_PRESENT(declare_integer_type(OptoReg::Name)) \ \ + declare_toplevel_type(CHeapObj<mtInternal>) \ + declare_type(Array<int>, MetaspaceObj) \ + declare_type(Array<u1>, MetaspaceObj) \ + declare_type(Array<u2>, MetaspaceObj) \ + declare_type(Array<Klass*>, MetaspaceObj) \ + declare_type(Array<Method*>, MetaspaceObj) \ + \ declare_integer_type(AccessFlags) /* FIXME: wrong type (not integer) */\ declare_toplevel_type(address) /* FIXME: should this be an integer type? */\ declare_integer_type(BasicType) /* FIXME: wrong type (not integer) */\ @@ -2108,7 +2058,8 @@ declare_toplevel_type(Thread*) \ declare_toplevel_type(Universe) \ declare_toplevel_type(vframeArray) \ - declare_toplevel_type(vframeArrayElement) + declare_toplevel_type(vframeArrayElement) \ + declare_toplevel_type(Annotations*) /* NOTE that we do not use the last_entry() macro here; it is used */ @@ -2149,6 +2100,7 @@ \ declare_constant(oopSize) \ declare_constant(LogBytesPerWord) \ + declare_constant(BytesPerWord) \ declare_constant(BytesPerLong) \ \ /********************************************/ \ @@ -2197,10 +2149,6 @@ declare_constant(HeapWordSize) \ declare_constant(LogHeapWordSize) \ \ - /* constants from PermGen::Name enum */ \ - \ - declare_constant(PermGen::MarkSweepCompact) \ - declare_constant(PermGen::MarkSweep) \ \ /************************/ \ /* PerfMemory - jvmstat */ \ @@ -2288,16 +2236,16 @@ declare_constant(Klass::_lh_array_tag_obj_value) \ \ /********************************/ \ - /* constMethodOopDesc anon-enum */ \ + /* ConstMethod anon-enum */ \ /********************************/ \ \ - declare_constant(constMethodOopDesc::_has_linenumber_table) \ - declare_constant(constMethodOopDesc::_has_checked_exceptions) \ - declare_constant(constMethodOopDesc::_has_localvariable_table) \ - declare_constant(constMethodOopDesc::_has_exception_table) \ + declare_constant(ConstMethod::_has_linenumber_table) \ + declare_constant(ConstMethod::_has_checked_exceptions) \ + declare_constant(ConstMethod::_has_localvariable_table) \ + declare_constant(ConstMethod::_has_exception_table) \ \ /*************************************/ \ - /* instanceKlass enum */ \ + /* InstanceKlass enum */ \ /*************************************/ \ \ \ @@ -2314,26 +2262,25 @@ declare_constant(FieldInfo::field_slots) \ \ /************************************************/ \ - /* instanceKlass InnerClassAttributeOffset enum */ \ + /* InstanceKlass InnerClassAttributeOffset enum */ \ /************************************************/ \ \ - declare_constant(instanceKlass::inner_class_inner_class_info_offset) \ - declare_constant(instanceKlass::inner_class_outer_class_info_offset) \ - declare_constant(instanceKlass::inner_class_inner_name_offset) \ - declare_constant(instanceKlass::inner_class_access_flags_offset) \ - declare_constant(instanceKlass::inner_class_next_offset) \ + declare_constant(InstanceKlass::inner_class_inner_class_info_offset) \ + declare_constant(InstanceKlass::inner_class_outer_class_info_offset) \ + declare_constant(InstanceKlass::inner_class_inner_name_offset) \ + declare_constant(InstanceKlass::inner_class_access_flags_offset) \ + declare_constant(InstanceKlass::inner_class_next_offset) \ \ /*********************************/ \ - /* instanceKlass ClassState enum */ \ + /* InstanceKlass ClassState enum */ \ /*********************************/ \ \ - declare_constant(instanceKlass::unparsable_by_gc) \ - declare_constant(instanceKlass::allocated) \ - declare_constant(instanceKlass::loaded) \ - declare_constant(instanceKlass::linked) \ - declare_constant(instanceKlass::being_initialized) \ - declare_constant(instanceKlass::fully_initialized) \ - declare_constant(instanceKlass::initialization_error) \ + declare_constant(InstanceKlass::allocated) \ + declare_constant(InstanceKlass::loaded) \ + declare_constant(InstanceKlass::linked) \ + declare_constant(InstanceKlass::being_initialized) \ + declare_constant(InstanceKlass::fully_initialized) \ + declare_constant(InstanceKlass::initialization_error) \ \ /*********************************/ \ /* Symbol* - symbol max length */ \ @@ -2342,12 +2289,12 @@ declare_constant(Symbol::max_symbol_length) \ \ /*************************************************/ \ - /* constantPoolOop layout enum for InvokeDynamic */ \ + /* ConstantPool* layout enum for InvokeDynamic */ \ /*************************************************/ \ \ - declare_constant(constantPoolOopDesc::_indy_bsm_offset) \ - declare_constant(constantPoolOopDesc::_indy_argc_offset) \ - declare_constant(constantPoolOopDesc::_indy_argv_offset) \ + declare_constant(ConstantPool::_indy_bsm_offset) \ + declare_constant(ConstantPool::_indy_argc_offset) \ + declare_constant(ConstantPool::_indy_argv_offset) \ \ /********************************/ \ /* ConstantPoolCacheEntry enums */ \ @@ -3167,8 +3114,13 @@ } delete s; } + const char* start = NULL; if (strstr(typeName, "GrowableArray<") == typeName) { - const char * start = typeName + strlen("GrowableArray<"); + start = typeName + strlen("GrowableArray<"); + } else if (strstr(typeName, "Array<") == typeName) { + start = typeName + strlen("Array<"); + } + if (start != NULL) { const char * end = strrchr(typeName, '>'); int len = end - start + 1; char * s = new char[len];