< prev index next >

src/hotspot/share/oops/klass.cpp

Print this page


 554     log_debug(cds, mirror)("No archived mirror data for %s", external_name());
 555     _java_mirror = NULL;
 556     this->clear_has_raw_archived_mirror();
 557   }
 558 
 559   // Only recreate it if not present.  A previous attempt to restore may have
 560   // gotten an OOM later but keep the mirror if it was created.
 561   if (java_mirror() == NULL) {
 562     log_trace(cds, mirror)("Recreate mirror for %s", external_name());
 563     java_lang_Class::create_mirror(this, loader, module_handle, protection_domain, CHECK);
 564   }
 565 }
 566 
 567 #if INCLUDE_CDS_JAVA_HEAP
 568 // Used at CDS dump time to access the archived mirror. No GC barrier.
 569 oop Klass::archived_java_mirror_raw() {
 570   assert(has_raw_archived_mirror(), "must have raw archived mirror");
 571   return CompressedOops::decode(_archived_mirror);
 572 }
 573 





 574 // No GC barrier
 575 void Klass::set_archived_java_mirror_raw(oop m) {
 576   assert(DumpSharedSpaces, "called only during runtime");
 577   _archived_mirror = CompressedOops::encode(m);
 578 }
 579 #endif // INCLUDE_CDS_JAVA_HEAP
 580 
 581 Klass* Klass::array_klass_or_null(int rank) {
 582   EXCEPTION_MARK;
 583   // No exception can be thrown by array_klass_impl when called with or_null == true.
 584   // (In anycase, the execption mark will fail if it do so)
 585   return array_klass_impl(true, rank, THREAD);
 586 }
 587 
 588 
 589 Klass* Klass::array_klass_or_null() {
 590   EXCEPTION_MARK;
 591   // No exception can be thrown by array_klass_impl when called with or_null == true.
 592   // (In anycase, the execption mark will fail if it do so)
 593   return array_klass_impl(true, THREAD);




 554     log_debug(cds, mirror)("No archived mirror data for %s", external_name());
 555     _java_mirror = NULL;
 556     this->clear_has_raw_archived_mirror();
 557   }
 558 
 559   // Only recreate it if not present.  A previous attempt to restore may have
 560   // gotten an OOM later but keep the mirror if it was created.
 561   if (java_mirror() == NULL) {
 562     log_trace(cds, mirror)("Recreate mirror for %s", external_name());
 563     java_lang_Class::create_mirror(this, loader, module_handle, protection_domain, CHECK);
 564   }
 565 }
 566 
 567 #if INCLUDE_CDS_JAVA_HEAP
 568 // Used at CDS dump time to access the archived mirror. No GC barrier.
 569 oop Klass::archived_java_mirror_raw() {
 570   assert(has_raw_archived_mirror(), "must have raw archived mirror");
 571   return CompressedOops::decode(_archived_mirror);
 572 }
 573 
 574 narrowOop Klass::archived_java_mirror_raw_narrow() {
 575   assert(has_raw_archived_mirror(), "must have raw archived mirror");
 576   return _archived_mirror;
 577 }
 578 
 579 // No GC barrier
 580 void Klass::set_archived_java_mirror_raw(oop m) {
 581   assert(DumpSharedSpaces, "called only during runtime");
 582   _archived_mirror = CompressedOops::encode(m);
 583 }
 584 #endif // INCLUDE_CDS_JAVA_HEAP
 585 
 586 Klass* Klass::array_klass_or_null(int rank) {
 587   EXCEPTION_MARK;
 588   // No exception can be thrown by array_klass_impl when called with or_null == true.
 589   // (In anycase, the execption mark will fail if it do so)
 590   return array_klass_impl(true, rank, THREAD);
 591 }
 592 
 593 
 594 Klass* Klass::array_klass_or_null() {
 595   EXCEPTION_MARK;
 596   // No exception can be thrown by array_klass_impl when called with or_null == true.
 597   // (In anycase, the execption mark will fail if it do so)
 598   return array_klass_impl(true, THREAD);


< prev index next >