< prev index next >

src/hotspot/share/oops/constantPool.cpp

Print this page

        

*** 233,243 **** Klass** adr = resolved_klasses()->adr_at(resolved_klass_index); OrderAccess::release_store(adr, k); // The interpreter assumes when the tag is stored, the klass is resolved // and the Klass* non-NULL, so we need hardware store ordering here. ! jbyte qdesc_bit = (name->is_Q_signature() || name->is_Q_array_signature()) ? (jbyte)JVM_CONSTANT_QDESC_BIT : 0; if (k != NULL) { release_tag_at_put(class_index, JVM_CONSTANT_Class | qdesc_bit); } else { release_tag_at_put(class_index, JVM_CONSTANT_UnresolvedClass | qdesc_bit); } --- 233,243 ---- Klass** adr = resolved_klasses()->adr_at(resolved_klass_index); OrderAccess::release_store(adr, k); // The interpreter assumes when the tag is stored, the klass is resolved // and the Klass* non-NULL, so we need hardware store ordering here. ! jbyte qdesc_bit = (name->is_Q_signature()) ? (jbyte) JVM_CONSTANT_QDescBit : 0; if (k != NULL) { release_tag_at_put(class_index, JVM_CONSTANT_Class | qdesc_bit); } else { release_tag_at_put(class_index, JVM_CONSTANT_UnresolvedClass | qdesc_bit); }
*** 251,261 **** Klass** adr = resolved_klasses()->adr_at(resolved_klass_index); OrderAccess::release_store(adr, k); // The interpreter assumes when the tag is stored, the klass is resolved // and the Klass* non-NULL, so we need hardware store ordering here. ! assert(!(k->name()->is_Q_signature() || k->name()->is_Q_array_signature()), "Q-type without JVM_CONSTANT_QDESC_BIT"); release_tag_at_put(class_index, JVM_CONSTANT_Class); } #if INCLUDE_CDS_JAVA_HEAP // Archive the resolved references --- 251,261 ---- Klass** adr = resolved_klasses()->adr_at(resolved_klass_index); OrderAccess::release_store(adr, k); // The interpreter assumes when the tag is stored, the klass is resolved // and the Klass* non-NULL, so we need hardware store ordering here. ! assert(!k->name()->is_Q_signature(), "Q-type without JVM_CONSTANT_QDescBit"); release_tag_at_put(class_index, JVM_CONSTANT_Class); } #if INCLUDE_CDS_JAVA_HEAP // Archive the resolved references
*** 549,559 **** // The interpreter assumes when the tag is stored, the klass is resolved // and the Klass* stored in _resolved_klasses is non-NULL, so we need // hardware store ordering here. jbyte tag = JVM_CONSTANT_Class; if (this_cp->tag_at(which).is_Qdescriptor_klass()) { ! tag |= JVM_CONSTANT_QDESC_BIT; } this_cp->release_tag_at_put(which, tag); return k; } --- 549,559 ---- // The interpreter assumes when the tag is stored, the klass is resolved // and the Klass* stored in _resolved_klasses is non-NULL, so we need // hardware store ordering here. jbyte tag = JVM_CONSTANT_Class; if (this_cp->tag_at(which).is_Qdescriptor_klass()) { ! tag |= JVM_CONSTANT_QDescBit; } this_cp->release_tag_at_put(which, tag); return k; }
*** 1987,1997 **** idx1 = Bytes::get_Java_u2(bytes); printf("class #%03d", idx1); ent_size = 2; break; } ! case (JVM_CONSTANT_Class | JVM_CONSTANT_QDESC_BIT): { idx1 = Bytes::get_Java_u2(bytes); printf("qclass #%03d", idx1); ent_size = 2; break; } --- 1987,1997 ---- idx1 = Bytes::get_Java_u2(bytes); printf("class #%03d", idx1); ent_size = 2; break; } ! case (JVM_CONSTANT_Class | JVM_CONSTANT_QDescBit): { idx1 = Bytes::get_Java_u2(bytes); printf("qclass #%03d", idx1); ent_size = 2; break; }
*** 2035,2045 **** } case JVM_CONSTANT_UnresolvedClass: { printf("UnresolvedClass: %s", WARN_MSG); break; } ! case (JVM_CONSTANT_UnresolvedClass | JVM_CONSTANT_QDESC_BIT): { printf("UnresolvedQClass: %s", WARN_MSG); break; } case JVM_CONSTANT_UnresolvedClassInError: { printf("UnresolvedClassInErr: %s", WARN_MSG); --- 2035,2045 ---- } case JVM_CONSTANT_UnresolvedClass: { printf("UnresolvedClass: %s", WARN_MSG); break; } ! case (JVM_CONSTANT_UnresolvedClass | JVM_CONSTANT_QDescBit): { printf("UnresolvedQClass: %s", WARN_MSG); break; } case JVM_CONSTANT_UnresolvedClassInError: { printf("UnresolvedClassInErr: %s", WARN_MSG);
< prev index next >