< prev index next >

src/hotspot/share/oops/constantPool.hpp

Print this page

        

*** 269,288 **** 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 void klass_index_at_put(int which, int name_index) { tag_at_put(which, JVM_CONSTANT_ClassIndex); *int_at_addr(which) = name_index; } // Unsafe anonymous class support: void klass_at_put(int class_index, int name_index, int resolved_klass_index, Klass* k, Symbol* name); void klass_at_put(int class_index, Klass* k); 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"); --- 269,297 ---- 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. 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; } // Unsafe anonymous class support: void klass_at_put(int class_index, int name_index, int resolved_klass_index, Klass* k, Symbol* name); 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_QDESC_BIT); + + 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 >