< 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 >