src/share/vm/oops/instanceKlass.hpp

changeset 8936
b56e03b3e2d9
parent 8185
5cece4584b8e
child 8956
964d7f65d54f
equal deleted inserted replaced
8935:733615d6afda 8936:b56e03b3e2d9
563 563
564 // host class 564 // host class
565 Klass* host_klass() const { 565 Klass* host_klass() const {
566 Klass** hk = (Klass**)adr_host_klass(); 566 Klass** hk = (Klass**)adr_host_klass();
567 if (hk == NULL) { 567 if (hk == NULL) {
568 assert(!is_anonymous(), "Anonymous classes have host klasses");
568 return NULL; 569 return NULL;
569 } else { 570 } else {
570 assert(*hk != NULL, "host klass should always be set if the address is not null"); 571 assert(*hk != NULL, "host klass should always be set if the address is not null");
572 assert(is_anonymous(), "Only anonymous classes have host klasses");
571 return *hk; 573 return *hk;
572 } 574 }
573 } 575 }
574 void set_host_klass(Klass* host) { 576 void set_host_klass(Klass* host) {
575 assert(is_anonymous(), "not anonymous"); 577 assert(is_anonymous(), "not anonymous");
576 Klass** addr = (Klass**)adr_host_klass(); 578 Klass** addr = (Klass**)adr_host_klass();
577 assert(addr != NULL, "no reversed space"); 579 assert(addr != NULL, "no reversed space");
578 if (addr != NULL) { 580 if (addr != NULL) {
579 *addr = host; 581 *addr = host;
580 } 582 }
583 }
584 bool has_host_klass() const {
585 return adr_host_klass() != NULL;
581 } 586 }
582 bool is_anonymous() const { 587 bool is_anonymous() const {
583 return (_misc_flags & _misc_is_anonymous) != 0; 588 return (_misc_flags & _misc_is_anonymous) != 0;
584 } 589 }
585 void set_is_anonymous(bool value) { 590 void set_is_anonymous(bool value) {

mercurial