494 if (Thread::current()->is_VM_thread()) {
495 assert_pll_locked(is_locked);
496 } else {
497 assert_pll_ownership();
498 }
499 return _reference_pending_list;
500 }
501
502 void Universe::set_reference_pending_list(oop list) {
503 assert_pll_ownership();
504 _reference_pending_list = list;
505 }
506
507 bool Universe::has_reference_pending_list() {
508 assert_pll_ownership();
509 return _reference_pending_list != NULL;
510 }
511
512 oop Universe::swap_reference_pending_list(oop list) {
513 assert_pll_locked(is_locked);
514 return Atomic::xchg(list, &_reference_pending_list);
515 }
516
517 #undef assert_pll_locked
518 #undef assert_pll_ownership
519
520 void Universe::reinitialize_vtable_of(Klass* ko, TRAPS) {
521 // init vtable of k and all subclasses
522 ko->vtable().initialize_vtable(false, CHECK);
523 if (ko->is_instance_klass()) {
524 for (Klass* sk = ko->subklass();
525 sk != NULL;
526 sk = sk->next_sibling()) {
527 reinitialize_vtable_of(sk, CHECK);
528 }
529 }
530 }
531
532 void Universe::reinitialize_vtables(TRAPS) {
533 // The vtables are initialized by starting at java.lang.Object and
534 // initializing through the subclass links, so that the super
|
494 if (Thread::current()->is_VM_thread()) {
495 assert_pll_locked(is_locked);
496 } else {
497 assert_pll_ownership();
498 }
499 return _reference_pending_list;
500 }
501
502 void Universe::set_reference_pending_list(oop list) {
503 assert_pll_ownership();
504 _reference_pending_list = list;
505 }
506
507 bool Universe::has_reference_pending_list() {
508 assert_pll_ownership();
509 return _reference_pending_list != NULL;
510 }
511
512 oop Universe::swap_reference_pending_list(oop list) {
513 assert_pll_locked(is_locked);
514 return Atomic::xchg(&_reference_pending_list, list);
515 }
516
517 #undef assert_pll_locked
518 #undef assert_pll_ownership
519
520 void Universe::reinitialize_vtable_of(Klass* ko, TRAPS) {
521 // init vtable of k and all subclasses
522 ko->vtable().initialize_vtable(false, CHECK);
523 if (ko->is_instance_klass()) {
524 for (Klass* sk = ko->subklass();
525 sk != NULL;
526 sk = sk->next_sibling()) {
527 reinitialize_vtable_of(sk, CHECK);
528 }
529 }
530 }
531
532 void Universe::reinitialize_vtables(TRAPS) {
533 // The vtables are initialized by starting at java.lang.Object and
534 // initializing through the subclass links, so that the super
|