1.1 --- a/src/share/vm/oops/cpCache.hpp Wed Nov 13 07:31:26 2013 -0800 1.2 +++ b/src/share/vm/oops/cpCache.hpp Wed Nov 13 16:42:24 2013 -0500 1.3 @@ -31,6 +31,10 @@ 1.4 1.5 class PSPromotionManager; 1.6 1.7 +// The ConstantPoolCache is not a cache! It is the resolution table that the 1.8 +// interpreter uses to avoid going into the runtime and a way to access resolved 1.9 +// values. 1.10 + 1.11 // A ConstantPoolCacheEntry describes an individual entry of the constant 1.12 // pool cache. There's 2 principal kinds of entries: field entries for in- 1.13 // stance & static field access, and method entries for invokes. Some of 1.14 @@ -392,26 +396,33 @@ 1.15 friend class MetadataFactory; 1.16 private: 1.17 int _length; 1.18 - ConstantPool* _constant_pool; // the corresponding constant pool 1.19 + ConstantPool* _constant_pool; // the corresponding constant pool 1.20 1.21 // Sizing 1.22 debug_only(friend class ClassVerifier;) 1.23 1.24 // Constructor 1.25 - ConstantPoolCache(int length, const intStack& inverse_index_map, 1.26 + ConstantPoolCache(int length, 1.27 + const intStack& inverse_index_map, 1.28 + const intStack& invokedynamic_inverse_index_map, 1.29 const intStack& invokedynamic_references_map) : 1.30 - _length(length), _constant_pool(NULL) { 1.31 - initialize(inverse_index_map, invokedynamic_references_map); 1.32 + _length(length), 1.33 + _constant_pool(NULL) { 1.34 + initialize(inverse_index_map, invokedynamic_inverse_index_map, 1.35 + invokedynamic_references_map); 1.36 for (int i = 0; i < length; i++) { 1.37 assert(entry_at(i)->is_f1_null(), "Failed to clear?"); 1.38 } 1.39 } 1.40 1.41 // Initialization 1.42 - void initialize(const intArray& inverse_index_map, const intArray& invokedynamic_references_map); 1.43 + void initialize(const intArray& inverse_index_map, 1.44 + const intArray& invokedynamic_inverse_index_map, 1.45 + const intArray& invokedynamic_references_map); 1.46 public: 1.47 - static ConstantPoolCache* allocate(ClassLoaderData* loader_data, int length, 1.48 - const intStack& inverse_index_map, 1.49 + static ConstantPoolCache* allocate(ClassLoaderData* loader_data, 1.50 + const intStack& cp_cache_map, 1.51 + const intStack& invokedynamic_cp_cache_map, 1.52 const intStack& invokedynamic_references_map, TRAPS); 1.53 bool is_constantPoolCache() const { return true; } 1.54