@@ -446,23 +446,21 @@ InstanceKlass* InstanceKlass::allocate_instance_klass(const ClassFileParser& par
446
446
InstanceKlass* ik;
447
447
448
448
// Allocation
449
- if (REF_NONE == parser.reference_type ()) {
450
- if (class_name == vmSymbols::java_lang_Class ()) {
451
- // mirror - java.lang.Class
452
- ik = new (loader_data, size, THREAD) InstanceMirrorKlass (parser);
453
- } else if (is_stack_chunk_class (class_name, loader_data)) {
454
- // stack chunk
455
- ik = new (loader_data, size, THREAD) InstanceStackChunkKlass (parser);
456
- } else if (is_class_loader (class_name, parser)) {
457
- // class loader - java.lang.ClassLoader
458
- ik = new (loader_data, size, THREAD) InstanceClassLoaderKlass (parser);
459
- } else {
460
- // normal
461
- ik = new (loader_data, size, THREAD) InstanceKlass (parser);
462
- }
463
- } else {
449
+ if (parser.is_instance_ref_klass ()) {
464
450
// java.lang.ref.Reference
465
451
ik = new (loader_data, size, THREAD) InstanceRefKlass (parser);
452
+ } else if (class_name == vmSymbols::java_lang_Class ()) {
453
+ // mirror - java.lang.Class
454
+ ik = new (loader_data, size, THREAD) InstanceMirrorKlass (parser);
455
+ } else if (is_stack_chunk_class (class_name, loader_data)) {
456
+ // stack chunk
457
+ ik = new (loader_data, size, THREAD) InstanceStackChunkKlass (parser);
458
+ } else if (is_class_loader (class_name, parser)) {
459
+ // class loader - java.lang.ClassLoader
460
+ ik = new (loader_data, size, THREAD) InstanceClassLoaderKlass (parser);
461
+ } else {
462
+ // normal
463
+ ik = new (loader_data, size, THREAD) InstanceKlass (parser);
466
464
}
467
465
468
466
// Check for pending exception before adding to the loader data and incrementing
@@ -500,7 +498,7 @@ static Monitor* create_init_monitor(const char* name) {
500
498
return new Monitor (Mutex::safepoint, name);
501
499
}
502
500
503
- InstanceKlass::InstanceKlass (const ClassFileParser& parser, KlassKind kind) :
501
+ InstanceKlass::InstanceKlass (const ClassFileParser& parser, KlassKind kind, ReferenceType reference_type ) :
504
502
Klass(kind),
505
503
_nest_members(NULL ),
506
504
_nest_host(NULL ),
@@ -511,7 +509,7 @@ InstanceKlass::InstanceKlass(const ClassFileParser& parser, KlassKind kind) :
511
509
_itable_len(parser.itable_size()),
512
510
_nest_host_index(0 ),
513
511
_init_state(allocated),
514
- _reference_type(parser. reference_type() ),
512
+ _reference_type(reference_type),
515
513
_init_monitor(create_init_monitor(" InstanceKlassInitMonitor_lock" )),
516
514
_init_thread(NULL )
517
515
{
0 commit comments