diff -r e92b3d8118f1 -r 6b2aecc4f7d8 hotspot/src/share/vm/ci/ciCPCache.hpp --- a/hotspot/src/share/vm/ci/ciCPCache.hpp Mon Jun 07 14:17:01 2010 -0700 +++ b/hotspot/src/share/vm/ci/ciCPCache.hpp Wed Jun 09 18:50:45 2010 -0700 @@ -29,6 +29,18 @@ // Note: This class is called ciCPCache as ciConstantPoolCache is used // for something different. class ciCPCache : public ciObject { +private: + constantPoolCacheOop get_cpCacheOop() { // must be called inside a VM_ENTRY_MARK + return (constantPoolCacheOop) get_oop(); + } + + ConstantPoolCacheEntry* entry_at(int i) { + int raw_index = i; + if (constantPoolCacheOopDesc::is_secondary_index(i)) + raw_index = constantPoolCacheOopDesc::decode_secondary_index(i); + return get_cpCacheOop()->entry_at(raw_index); + } + public: ciCPCache(constantPoolCacheHandle cpcache) : ciObject(cpcache) {} @@ -41,5 +53,7 @@ bool is_f1_null_at(int index); + int get_pool_index(int index); + void print(); };