624 assert(is_anonymous(), "not anonymous");
625 const InstanceKlass** addr = (const InstanceKlass **)adr_host_klass();
626 assert(addr != NULL, "no reversed space");
627 if (addr != NULL) {
628 *addr = host;
629 }
630 }
631 bool is_anonymous() const {
632 return (_misc_flags & _misc_is_anonymous) != 0;
633 }
634 void set_is_anonymous(bool value) {
635 if (value) {
636 _misc_flags |= _misc_is_anonymous;
637 } else {
638 _misc_flags &= ~_misc_is_anonymous;
639 }
640 }
641
642 // Oop that keeps the metadata for this class from being unloaded
643 // in places where the metadata is stored in other places, like nmethods
644 oop klass_holder() const {
645 return is_anonymous() ? java_mirror() : class_loader();
646 }
647
648 bool is_contended() const {
649 return (_misc_flags & _misc_is_contended) != 0;
650 }
651 void set_is_contended(bool value) {
652 if (value) {
653 _misc_flags |= _misc_is_contended;
654 } else {
655 _misc_flags &= ~_misc_is_contended;
656 }
657 }
658
659 // source file name
660 Symbol* source_file_name() const {
661 return (_source_file_name_index == 0) ?
662 (Symbol*)NULL : _constants->symbol_at(_source_file_name_index);
663 }
664 u2 source_file_name_index() const {
665 return _source_file_name_index;
666 }
|
624 assert(is_anonymous(), "not anonymous");
625 const InstanceKlass** addr = (const InstanceKlass **)adr_host_klass();
626 assert(addr != NULL, "no reversed space");
627 if (addr != NULL) {
628 *addr = host;
629 }
630 }
631 bool is_anonymous() const {
632 return (_misc_flags & _misc_is_anonymous) != 0;
633 }
634 void set_is_anonymous(bool value) {
635 if (value) {
636 _misc_flags |= _misc_is_anonymous;
637 } else {
638 _misc_flags &= ~_misc_is_anonymous;
639 }
640 }
641
642 // Oop that keeps the metadata for this class from being unloaded
643 // in places where the metadata is stored in other places, like nmethods
644 oop* klass_holder_addr() const;
645
646 bool is_contended() const {
647 return (_misc_flags & _misc_is_contended) != 0;
648 }
649 void set_is_contended(bool value) {
650 if (value) {
651 _misc_flags |= _misc_is_contended;
652 } else {
653 _misc_flags &= ~_misc_is_contended;
654 }
655 }
656
657 // source file name
658 Symbol* source_file_name() const {
659 return (_source_file_name_index == 0) ?
660 (Symbol*)NULL : _constants->symbol_at(_source_file_name_index);
661 }
662 u2 source_file_name_index() const {
663 return _source_file_name_index;
664 }
|