< prev index next >

src/hotspot/share/oops/constantPool.hpp

Print this page
@@ -279,19 +279,28 @@
    static int pool_holder_offset_in_bytes()  { return offset_of(ConstantPool, _pool_holder); }
    static int resolved_klasses_offset_in_bytes()    { return 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 which, int name_index) {
      tag_at_put(which, JVM_CONSTANT_ClassIndex);
      *int_at_addr(which) = name_index;
    }
  
    // Hidden class support:
    void klass_at_put(int class_index, Klass* k);
  
+   void unresolved_qdescriptor_at_put(int which, int name_index, int resolved_klass_index) {
+       release_tag_at_put(which, 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(which) =
+         build_int_from_shorts((jushort)resolved_klass_index, (jushort)name_index);
+     }
+ 
    void unresolved_klass_at_put(int which, int name_index, int resolved_klass_index) {
      release_tag_at_put(which, JVM_CONSTANT_UnresolvedClass);
  
      assert((name_index & 0xffff0000) == 0, "must be");
      assert((resolved_klass_index & 0xffff0000) == 0, "must be");
< prev index next >