Mercurial > hg > graal-compiler
diff src/share/vm/oops/constantPoolOop.hpp @ 6275:957c266d8bc5
Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 21 Aug 2012 10:39:19 +0200 |
parents | 96c40b338c1a 1d7922586cf6 |
children |
line wrap: on
line diff
--- a/src/share/vm/oops/constantPoolOop.hpp Mon Aug 20 15:21:31 2012 +0200 +++ b/src/share/vm/oops/constantPoolOop.hpp Tue Aug 21 10:39:19 2012 +0200 @@ -642,6 +642,11 @@ return resolve_constant_at_impl(h_this, pool_index, _possible_index_sentinel, THREAD); } + oop resolve_bootstrap_specifier_at(int index, TRAPS) { + constantPoolHandle h_this(THREAD, this); + return resolve_bootstrap_specifier_at_impl(h_this, index, THREAD); + } + // Klass name matches name at offset bool klass_name_at_matches(instanceKlassHandle k, int which); @@ -666,12 +671,13 @@ friend class SystemDictionary; // Used by compiler to prevent classloading. - static methodOop method_at_if_loaded (constantPoolHandle this_oop, int which, - Bytecodes::Code bc = Bytecodes::_illegal); - static klassOop klass_at_if_loaded (constantPoolHandle this_oop, int which); - static klassOop klass_ref_at_if_loaded (constantPoolHandle this_oop, int which); + static methodOop method_at_if_loaded (constantPoolHandle this_oop, int which); + static bool has_appendix_at_if_loaded (constantPoolHandle this_oop, int which); + static oop appendix_at_if_loaded (constantPoolHandle this_oop, int which); + static klassOop klass_at_if_loaded (constantPoolHandle this_oop, int which); + static klassOop klass_ref_at_if_loaded (constantPoolHandle this_oop, int which); // Same as above - but does LinkResolving. - static klassOop klass_ref_at_if_loaded_check(constantPoolHandle this_oop, int which, TRAPS); + static klassOop klass_ref_at_if_loaded_check(constantPoolHandle this_oop, int which, TRAPS); // Routines currently used for annotations (only called by jvm.cpp) but which might be used in the // future by other Java code. These take constant pool indices rather than @@ -697,6 +703,8 @@ enum { CPCACHE_INDEX_TAG = 0 }; // in product mode, this zero value is a no-op #endif //ASSERT + static int get_cpcache_index(int index) { return index - CPCACHE_INDEX_TAG; } + private: Symbol* impl_name_ref_at(int which, bool uncached); @@ -731,6 +739,7 @@ static void resolve_string_constants_impl(constantPoolHandle this_oop, TRAPS); static oop resolve_constant_at_impl(constantPoolHandle this_oop, int index, int cache_index, TRAPS); + static oop resolve_bootstrap_specifier_at_impl(constantPoolHandle this_oop, int index, TRAPS); public: // Merging constantPoolOop support: @@ -766,7 +775,7 @@ unsigned char *bytes); }; -class SymbolHashMapEntry : public CHeapObj { +class SymbolHashMapEntry : public CHeapObj<mtSymbol> { private: unsigned int _hash; // 32-bit hash for item SymbolHashMapEntry* _next; // Next element in the linked list for this bucket @@ -792,7 +801,7 @@ }; // End SymbolHashMapEntry class -class SymbolHashMapBucket : public CHeapObj { +class SymbolHashMapBucket : public CHeapObj<mtSymbol> { private: SymbolHashMapEntry* _entry; @@ -805,7 +814,7 @@ }; // End SymbolHashMapBucket class -class SymbolHashMap: public CHeapObj { +class SymbolHashMap: public CHeapObj<mtSymbol> { private: // Default number of entries in the table @@ -818,7 +827,7 @@ void initialize_table(int table_size) { _table_size = table_size; - _buckets = NEW_C_HEAP_ARRAY(SymbolHashMapBucket, table_size); + _buckets = NEW_C_HEAP_ARRAY(SymbolHashMapBucket, table_size, mtSymbol); for (int index = 0; index < table_size; index++) { _buckets[index].clear(); }