1.1 --- a/src/share/vm/runtime/vmStructs.cpp Fri Jun 29 17:12:15 2012 -0700 1.2 +++ b/src/share/vm/runtime/vmStructs.cpp Mon Jul 02 13:11:28 2012 -0400 1.3 @@ -235,7 +235,6 @@ 1.4 #ifndef REG_COUNT 1.5 #define REG_COUNT 0 1.6 #endif 1.7 - 1.8 // whole purpose of this function is to work around bug c++/27724 in gcc 4.1.1 1.9 // with optimization turned on it doesn't affect produced code 1.10 static inline uint64_t cast_uint64_t(size_t x) 1.11 @@ -244,6 +243,16 @@ 1.12 } 1.13 1.14 1.15 +typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry; 1.16 +typedef Hashtable<intptr_t, mtInternal> IntptrHashtable; 1.17 +typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable; 1.18 +typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry; 1.19 +typedef Hashtable<oop, mtSymbol> StringHashtable; 1.20 +typedef TwoOopHashtable<klassOop, mtClass> klassOopTwoOopHashtable; 1.21 +typedef Hashtable<klassOop, mtClass> klassOopHashtable; 1.22 +typedef HashtableEntry<klassOop, mtClass> klassHashtableEntry; 1.23 +typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; 1.24 + 1.25 //-------------------------------------------------------------------------------- 1.26 // VM_STRUCTS 1.27 // 1.28 @@ -711,26 +720,26 @@ 1.29 /* HashtableBucket */ \ 1.30 /*******************/ \ 1.31 \ 1.32 - nonstatic_field(HashtableBucket, _entry, BasicHashtableEntry*) \ 1.33 + nonstatic_field(HashtableBucket<mtInternal>, _entry, BasicHashtableEntry<mtInternal>*) \ 1.34 \ 1.35 /******************/ \ 1.36 /* HashtableEntry */ \ 1.37 /******************/ \ 1.38 \ 1.39 - nonstatic_field(BasicHashtableEntry, _next, BasicHashtableEntry*) \ 1.40 - nonstatic_field(BasicHashtableEntry, _hash, unsigned int) \ 1.41 - nonstatic_field(HashtableEntry<intptr_t>, _literal, intptr_t) \ 1.42 + nonstatic_field(BasicHashtableEntry<mtInternal>, _next, BasicHashtableEntry<mtInternal>*) \ 1.43 + nonstatic_field(BasicHashtableEntry<mtInternal>, _hash, unsigned int) \ 1.44 + nonstatic_field(IntptrHashtableEntry, _literal, intptr_t) \ 1.45 \ 1.46 /*************/ \ 1.47 /* Hashtable */ \ 1.48 /*************/ \ 1.49 \ 1.50 - nonstatic_field(BasicHashtable, _table_size, int) \ 1.51 - nonstatic_field(BasicHashtable, _buckets, HashtableBucket*) \ 1.52 - nonstatic_field(BasicHashtable, _free_list, BasicHashtableEntry*) \ 1.53 - nonstatic_field(BasicHashtable, _first_free_entry, char*) \ 1.54 - nonstatic_field(BasicHashtable, _end_block, char*) \ 1.55 - nonstatic_field(BasicHashtable, _entry_size, int) \ 1.56 + nonstatic_field(BasicHashtable<mtInternal>, _table_size, int) \ 1.57 + nonstatic_field(BasicHashtable<mtInternal>, _buckets, HashtableBucket<mtInternal>*) \ 1.58 + nonstatic_field(BasicHashtable<mtInternal>, _free_list, BasicHashtableEntry<mtInternal>*) \ 1.59 + nonstatic_field(BasicHashtable<mtInternal>, _first_free_entry, char*) \ 1.60 + nonstatic_field(BasicHashtable<mtInternal>, _end_block, char*) \ 1.61 + nonstatic_field(BasicHashtable<mtInternal>, _entry_size, int) \ 1.62 \ 1.63 /*******************/ \ 1.64 /* DictionaryEntry */ \ 1.65 @@ -1538,20 +1547,20 @@ 1.66 /* SymbolTable, SystemDictionary */ \ 1.67 /*********************************/ \ 1.68 \ 1.69 - declare_toplevel_type(BasicHashtable) \ 1.70 - declare_type(Hashtable<intptr_t>, BasicHashtable) \ 1.71 - declare_type(SymbolTable, Hashtable<Symbol*>) \ 1.72 - declare_type(StringTable, Hashtable<oop>) \ 1.73 - declare_type(LoaderConstraintTable, Hashtable<klassOop>) \ 1.74 - declare_type(TwoOopHashtable<klassOop>, Hashtable<klassOop>) \ 1.75 - declare_type(Dictionary, TwoOopHashtable<klassOop>) \ 1.76 - declare_type(PlaceholderTable, TwoOopHashtable<Symbol*>) \ 1.77 - declare_toplevel_type(BasicHashtableEntry) \ 1.78 - declare_type(HashtableEntry<intptr_t>, BasicHashtableEntry) \ 1.79 - declare_type(DictionaryEntry, HashtableEntry<klassOop>) \ 1.80 - declare_type(PlaceholderEntry, HashtableEntry<Symbol*>) \ 1.81 - declare_type(LoaderConstraintEntry, HashtableEntry<klassOop>) \ 1.82 - declare_toplevel_type(HashtableBucket) \ 1.83 + declare_toplevel_type(BasicHashtable<mtInternal>) \ 1.84 + declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \ 1.85 + declare_type(SymbolTable, SymbolHashtable) \ 1.86 + declare_type(StringTable, StringHashtable) \ 1.87 + declare_type(LoaderConstraintTable, klassOopHashtable) \ 1.88 + declare_type(klassOopTwoOopHashtable, klassOopHashtable) \ 1.89 + declare_type(Dictionary, klassOopTwoOopHashtable) \ 1.90 + declare_type(PlaceholderTable, SymbolTwoOopHashtable) \ 1.91 + declare_toplevel_type(BasicHashtableEntry<mtInternal>) \ 1.92 + declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \ 1.93 + declare_type(DictionaryEntry, klassHashtableEntry) \ 1.94 + declare_type(PlaceholderEntry, SymbolHashtableEntry) \ 1.95 + declare_type(LoaderConstraintEntry, klassHashtableEntry) \ 1.96 + declare_toplevel_type(HashtableBucket<mtInternal>) \ 1.97 declare_toplevel_type(SystemDictionary) \ 1.98 declare_toplevel_type(vmSymbols) \ 1.99 declare_toplevel_type(ProtectionDomainEntry) \