2425 HandleMark hm;
2426
2427 // Check integrity of CFL data structures
2428 _promoInfo.verify();
2429 _dictionary->verify();
2430 if (FLSVerifyIndexTable) {
2431 verifyIndexedFreeLists();
2432 }
2433 // Check integrity of all objects and free blocks in space
2434 {
2435 VerifyAllBlksClosure cl(this, span);
2436 ((CompactibleFreeListSpace*)this)->blk_iterate(&cl); // cast off const
2437 }
2438 // Check that all references in the heap to FLS
2439 // are to valid objects in FLS or that references in
2440 // FLS are to valid objects elsewhere in the heap
2441 if (FLSVerifyAllHeapReferences)
2442 {
2443 VerifyAllOopsClosure cl(_collector, this, span, past_remark,
2444 _collector->markBitMap());
2445 CollectedHeap* ch = Universe::heap();
2446
2447 // Iterate over all oops in the heap. Uses the _no_header version
2448 // since we are not interested in following the klass pointers.
2449 ch->oop_iterate_no_header(&cl);
2450 }
2451
2452 if (VerifyObjectStartArray) {
2453 // Verify the block offset table
2454 _bt.verify();
2455 }
2456 }
2457
2458 #ifndef PRODUCT
2459 void CompactibleFreeListSpace::verifyFreeLists() const {
2460 if (FLSVerifyLists) {
2461 _dictionary->verify();
2462 verifyIndexedFreeLists();
2463 } else {
2464 if (FLSVerifyDictionary) {
2465 _dictionary->verify();
2466 }
2467 if (FLSVerifyIndexTable) {
2468 verifyIndexedFreeLists();
2469 }
|
2425 HandleMark hm;
2426
2427 // Check integrity of CFL data structures
2428 _promoInfo.verify();
2429 _dictionary->verify();
2430 if (FLSVerifyIndexTable) {
2431 verifyIndexedFreeLists();
2432 }
2433 // Check integrity of all objects and free blocks in space
2434 {
2435 VerifyAllBlksClosure cl(this, span);
2436 ((CompactibleFreeListSpace*)this)->blk_iterate(&cl); // cast off const
2437 }
2438 // Check that all references in the heap to FLS
2439 // are to valid objects in FLS or that references in
2440 // FLS are to valid objects elsewhere in the heap
2441 if (FLSVerifyAllHeapReferences)
2442 {
2443 VerifyAllOopsClosure cl(_collector, this, span, past_remark,
2444 _collector->markBitMap());
2445
2446 // Iterate over all oops in the heap. Uses the _no_header version
2447 // since we are not interested in following the klass pointers.
2448 GenCollectedHeap::heap()->oop_iterate_no_header(&cl);
2449 }
2450
2451 if (VerifyObjectStartArray) {
2452 // Verify the block offset table
2453 _bt.verify();
2454 }
2455 }
2456
2457 #ifndef PRODUCT
2458 void CompactibleFreeListSpace::verifyFreeLists() const {
2459 if (FLSVerifyLists) {
2460 _dictionary->verify();
2461 verifyIndexedFreeLists();
2462 } else {
2463 if (FLSVerifyDictionary) {
2464 _dictionary->verify();
2465 }
2466 if (FLSVerifyIndexTable) {
2467 verifyIndexedFreeLists();
2468 }
|