src/share/vm/oops/cpCache.hpp

changeset 6081
41cb10cbfb3c
parent 5732
b2e698d2276c
child 6493
3205e78d8193
     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  

mercurial