< prev index next >

src/share/vm/oops/cpCache.hpp

Print this page
rev 13365 : [mq]: review_update_1

@@ -413,10 +413,13 @@
   // stored in the ConstantPool, which is read-only.
   // Array of resolved objects from the constant pool and map from resolved
   // object index to original constant pool index
   jobject              _resolved_references;
   Array<u2>*           _reference_map;
+  // The narrowOop pointer to the archived resolved_references. Set at CDS dump
+  // time when caching java heap object is supported.
+  CDS_JAVA_HEAP_ONLY(narrowOop _archived_references;)
 
   // Sizing
   debug_only(friend class ClassVerifier;)
 
   // Constructor

@@ -424,10 +427,11 @@
                     const intStack& inverse_index_map,
                     const intStack& invokedynamic_inverse_index_map,
                     const intStack& invokedynamic_references_map) :
                           _length(length),
                           _constant_pool(NULL) {
+    CDS_JAVA_HEAP_ONLY(_archived_references = 0;)
     initialize(inverse_index_map, invokedynamic_inverse_index_map,
                invokedynamic_references_map);
     for (int i = 0; i < length; i++) {
       assert(entry_at(i)->is_f1_null(), "Failed to clear?");
     }

@@ -446,10 +450,13 @@
 
   int length() const                             { return _length; }
   void metaspace_pointers_do(MetaspaceClosure* it);
   MetaspaceObj::Type type() const                { return ConstantPoolCacheType; }
 
+  oop  archived_references() NOT_CDS_JAVA_HEAP_RETURN_(NULL);
+  void set_archived_references(oop o) NOT_CDS_JAVA_HEAP_RETURN;
+
   jobject resolved_references()           { return _resolved_references; }
   void set_resolved_references(jobject s) { _resolved_references = s; }
   Array<u2>* reference_map() const        { return _reference_map; }
   void set_reference_map(Array<u2>* o)    { _reference_map = o; }
 
< prev index next >