hotspot/src/share/vm/oops/instanceKlassKlass.cpp
changeset 9116 9bc44be338d6
parent 8725 8c1e3dd5fe1b
child 9172 a4e13ccafc44
equal deleted inserted replaced
9115:5a28312aa393 9116:9bc44be338d6
   103   MarkSweep::mark_and_push(ik->adr_class_loader());
   103   MarkSweep::mark_and_push(ik->adr_class_loader());
   104   MarkSweep::mark_and_push(ik->adr_inner_classes());
   104   MarkSweep::mark_and_push(ik->adr_inner_classes());
   105   MarkSweep::mark_and_push(ik->adr_protection_domain());
   105   MarkSweep::mark_and_push(ik->adr_protection_domain());
   106   MarkSweep::mark_and_push(ik->adr_host_klass());
   106   MarkSweep::mark_and_push(ik->adr_host_klass());
   107   MarkSweep::mark_and_push(ik->adr_signers());
   107   MarkSweep::mark_and_push(ik->adr_signers());
   108   MarkSweep::mark_and_push(ik->adr_bootstrap_method());
       
   109   MarkSweep::mark_and_push(ik->adr_class_annotations());
   108   MarkSweep::mark_and_push(ik->adr_class_annotations());
   110   MarkSweep::mark_and_push(ik->adr_fields_annotations());
   109   MarkSweep::mark_and_push(ik->adr_fields_annotations());
   111   MarkSweep::mark_and_push(ik->adr_methods_annotations());
   110   MarkSweep::mark_and_push(ik->adr_methods_annotations());
   112   MarkSweep::mark_and_push(ik->adr_methods_parameter_annotations());
   111   MarkSweep::mark_and_push(ik->adr_methods_parameter_annotations());
   113   MarkSweep::mark_and_push(ik->adr_methods_default_annotations());
   112   MarkSweep::mark_and_push(ik->adr_methods_default_annotations());
   140   PSParallelCompact::mark_and_push(cm, ik->adr_class_loader());
   139   PSParallelCompact::mark_and_push(cm, ik->adr_class_loader());
   141   PSParallelCompact::mark_and_push(cm, ik->adr_inner_classes());
   140   PSParallelCompact::mark_and_push(cm, ik->adr_inner_classes());
   142   PSParallelCompact::mark_and_push(cm, ik->adr_protection_domain());
   141   PSParallelCompact::mark_and_push(cm, ik->adr_protection_domain());
   143   PSParallelCompact::mark_and_push(cm, ik->adr_host_klass());
   142   PSParallelCompact::mark_and_push(cm, ik->adr_host_klass());
   144   PSParallelCompact::mark_and_push(cm, ik->adr_signers());
   143   PSParallelCompact::mark_and_push(cm, ik->adr_signers());
   145   PSParallelCompact::mark_and_push(cm, ik->adr_bootstrap_method());
       
   146   PSParallelCompact::mark_and_push(cm, ik->adr_class_annotations());
   144   PSParallelCompact::mark_and_push(cm, ik->adr_class_annotations());
   147   PSParallelCompact::mark_and_push(cm, ik->adr_fields_annotations());
   145   PSParallelCompact::mark_and_push(cm, ik->adr_fields_annotations());
   148   PSParallelCompact::mark_and_push(cm, ik->adr_methods_annotations());
   146   PSParallelCompact::mark_and_push(cm, ik->adr_methods_annotations());
   149   PSParallelCompact::mark_and_push(cm, ik->adr_methods_parameter_annotations());
   147   PSParallelCompact::mark_and_push(cm, ik->adr_methods_parameter_annotations());
   150   PSParallelCompact::mark_and_push(cm, ik->adr_methods_default_annotations());
   148   PSParallelCompact::mark_and_push(cm, ik->adr_methods_default_annotations());
   183   blk->do_oop(ik->adr_signers());
   181   blk->do_oop(ik->adr_signers());
   184   blk->do_oop(ik->adr_inner_classes());
   182   blk->do_oop(ik->adr_inner_classes());
   185   for (int i = 0; i < instanceKlass::implementors_limit; i++) {
   183   for (int i = 0; i < instanceKlass::implementors_limit; i++) {
   186     blk->do_oop(&ik->adr_implementors()[i]);
   184     blk->do_oop(&ik->adr_implementors()[i]);
   187   }
   185   }
   188   blk->do_oop(ik->adr_bootstrap_method());
       
   189   blk->do_oop(ik->adr_class_annotations());
   186   blk->do_oop(ik->adr_class_annotations());
   190   blk->do_oop(ik->adr_fields_annotations());
   187   blk->do_oop(ik->adr_fields_annotations());
   191   blk->do_oop(ik->adr_methods_annotations());
   188   blk->do_oop(ik->adr_methods_annotations());
   192   blk->do_oop(ik->adr_methods_parameter_annotations());
   189   blk->do_oop(ik->adr_methods_parameter_annotations());
   193   blk->do_oop(ik->adr_methods_default_annotations());
   190   blk->do_oop(ik->adr_methods_default_annotations());
   237   if (mr.contains(adr)) blk->do_oop(adr);
   234   if (mr.contains(adr)) blk->do_oop(adr);
   238   adr = ik->adr_implementors();
   235   adr = ik->adr_implementors();
   239   for (int i = 0; i < instanceKlass::implementors_limit; i++) {
   236   for (int i = 0; i < instanceKlass::implementors_limit; i++) {
   240     if (mr.contains(&adr[i])) blk->do_oop(&adr[i]);
   237     if (mr.contains(&adr[i])) blk->do_oop(&adr[i]);
   241   }
   238   }
   242   adr = ik->adr_bootstrap_method();
       
   243   if (mr.contains(adr)) blk->do_oop(adr);
       
   244   adr = ik->adr_class_annotations();
   239   adr = ik->adr_class_annotations();
   245   if (mr.contains(adr)) blk->do_oop(adr);
   240   if (mr.contains(adr)) blk->do_oop(adr);
   246   adr = ik->adr_fields_annotations();
   241   adr = ik->adr_fields_annotations();
   247   if (mr.contains(adr)) blk->do_oop(adr);
   242   if (mr.contains(adr)) blk->do_oop(adr);
   248   adr = ik->adr_methods_annotations();
   243   adr = ik->adr_methods_annotations();
   279   MarkSweep::adjust_pointer(ik->adr_signers());
   274   MarkSweep::adjust_pointer(ik->adr_signers());
   280   MarkSweep::adjust_pointer(ik->adr_inner_classes());
   275   MarkSweep::adjust_pointer(ik->adr_inner_classes());
   281   for (int i = 0; i < instanceKlass::implementors_limit; i++) {
   276   for (int i = 0; i < instanceKlass::implementors_limit; i++) {
   282     MarkSweep::adjust_pointer(&ik->adr_implementors()[i]);
   277     MarkSweep::adjust_pointer(&ik->adr_implementors()[i]);
   283   }
   278   }
   284   MarkSweep::adjust_pointer(ik->adr_bootstrap_method());
       
   285   MarkSweep::adjust_pointer(ik->adr_class_annotations());
   279   MarkSweep::adjust_pointer(ik->adr_class_annotations());
   286   MarkSweep::adjust_pointer(ik->adr_fields_annotations());
   280   MarkSweep::adjust_pointer(ik->adr_fields_annotations());
   287   MarkSweep::adjust_pointer(ik->adr_methods_annotations());
   281   MarkSweep::adjust_pointer(ik->adr_methods_annotations());
   288   MarkSweep::adjust_pointer(ik->adr_methods_parameter_annotations());
   282   MarkSweep::adjust_pointer(ik->adr_methods_parameter_annotations());
   289   MarkSweep::adjust_pointer(ik->adr_methods_default_annotations());
   283   MarkSweep::adjust_pointer(ik->adr_methods_default_annotations());
   313   }
   307   }
   314 
   308 
   315   oop* sg_addr = ik->adr_signers();
   309   oop* sg_addr = ik->adr_signers();
   316   if (PSScavenge::should_scavenge(sg_addr)) {
   310   if (PSScavenge::should_scavenge(sg_addr)) {
   317     pm->claim_or_forward_depth(sg_addr);
   311     pm->claim_or_forward_depth(sg_addr);
   318   }
       
   319 
       
   320   oop* bsm_addr = ik->adr_bootstrap_method();
       
   321   if (PSScavenge::should_scavenge(bsm_addr)) {
       
   322     pm->claim_or_forward_depth(bsm_addr);
       
   323   }
   312   }
   324 
   313 
   325   klassKlass::oop_push_contents(pm, obj);
   314   klassKlass::oop_push_contents(pm, obj);
   326 }
   315 }
   327 
   316 
   418     ik->set_jni_ids(NULL);
   407     ik->set_jni_ids(NULL);
   419     ik->set_osr_nmethods_head(NULL);
   408     ik->set_osr_nmethods_head(NULL);
   420     ik->set_breakpoints(NULL);
   409     ik->set_breakpoints(NULL);
   421     ik->init_previous_versions();
   410     ik->init_previous_versions();
   422     ik->set_generic_signature(NULL);
   411     ik->set_generic_signature(NULL);
   423     ik->set_bootstrap_method(NULL);
       
   424     ik->release_set_methods_jmethod_ids(NULL);
   412     ik->release_set_methods_jmethod_ids(NULL);
   425     ik->release_set_methods_cached_itable_indices(NULL);
   413     ik->release_set_methods_cached_itable_indices(NULL);
   426     ik->set_class_annotations(NULL);
   414     ik->set_class_annotations(NULL);
   427     ik->set_fields_annotations(NULL);
   415     ik->set_fields_annotations(NULL);
   428     ik->set_methods_annotations(NULL);
   416     ik->set_methods_annotations(NULL);
   540       }
   528       }
   541       if (have_pv)  st->cr();
   529       if (have_pv)  st->cr();
   542     } // pvw is cleaned up
   530     } // pvw is cleaned up
   543   } // rm is cleaned up
   531   } // rm is cleaned up
   544 
   532 
   545   if (ik->bootstrap_method() != NULL) {
       
   546     st->print(BULLET"bootstrap method:  ");
       
   547     ik->bootstrap_method()->print_value_on(st);
       
   548     st->cr();
       
   549   }
       
   550   if (ik->generic_signature() != NULL) {
   533   if (ik->generic_signature() != NULL) {
   551     st->print(BULLET"generic signature: ");
   534     st->print(BULLET"generic signature: ");
   552     ik->generic_signature()->print_value_on(st);
   535     ik->generic_signature()->print_value_on(st);
   553     st->cr();
   536     st->cr();
   554   }
   537   }