< prev index next >

src/hotspot/share/oops/constantPool.hpp

Print this page
@@ -267,19 +267,28 @@
    static ByteSize pool_holder_offset()  { return byte_offset_of(ConstantPool, _pool_holder); }
    static ByteSize resolved_klasses_offset()    { return byte_offset_of(ConstantPool, _resolved_klasses); }
  
    // Storing constants
  
-   // For temporary use while constructing constant pool
+   // For temporary use while constructing constant pool. Used during a retransform/class redefinition as well.
    void klass_index_at_put(int cp_index, int name_index) {
      tag_at_put(cp_index, JVM_CONSTANT_ClassIndex);
      *int_at_addr(cp_index) = name_index;
    }
  
    // Hidden class support:
    void klass_at_put(int class_index, Klass* k);
  
+   void unresolved_qdescriptor_at_put(int cp_index, int name_index, int resolved_klass_index) {
+       release_tag_at_put(cp_index, JVM_CONSTANT_UnresolvedClass | (jbyte) JVM_CONSTANT_QDescBit);
+ 
+       assert((name_index & 0xffff0000) == 0, "must be");
+       assert((resolved_klass_index & 0xffff0000) == 0, "must be");
+       *int_at_addr(cp_index) =
+         build_int_from_shorts((jushort)resolved_klass_index, (jushort)name_index);
+     }
+ 
    void unresolved_klass_at_put(int cp_index, int name_index, int resolved_klass_index) {
      release_tag_at_put(cp_index, JVM_CONSTANT_UnresolvedClass);
  
      assert((name_index & 0xffff0000) == 0, "must be");
      assert((resolved_klass_index & 0xffff0000) == 0, "must be");
< prev index next >