351 // Does nothing 352 } 353 354 bool ZCollectedHeap::print_location(outputStream* st, void* addr) const { 355 if (LocationPrinter::is_valid_obj(addr)) { 356 st->print(INTPTR_FORMAT " is a %s oop: ", p2i(addr), 357 ZAddress::is_good(reinterpret_cast<uintptr_t>(addr)) ? "good" : "bad"); 358 cast_to_oop(addr)->print_on(st); 359 return true; 360 } 361 return false; 362 } 363 364 void ZCollectedHeap::verify(VerifyOption option /* ignored */) { 365 _heap.verify(); 366 } 367 368 bool ZCollectedHeap::is_oop(oop object) const { 369 return CollectedHeap::is_oop(object) && _heap.is_oop(object); 370 } 371 372 void ZCollectedHeap::check_oop_location(void* addr) const { 373 assert(is_object_aligned(addr), "address is not aligned"); 374 375 const uintptr_t addr_int = reinterpret_cast<uintptr_t>(addr); 376 assert(addr_int >= ZAddressSpaceStart, "address is outside of the heap"); 377 assert(addr_int < ZAddressSpaceEnd, "address is outside of the heap"); 378 } | 351 // Does nothing 352 } 353 354 bool ZCollectedHeap::print_location(outputStream* st, void* addr) const { 355 if (LocationPrinter::is_valid_obj(addr)) { 356 st->print(INTPTR_FORMAT " is a %s oop: ", p2i(addr), 357 ZAddress::is_good(reinterpret_cast<uintptr_t>(addr)) ? "good" : "bad"); 358 cast_to_oop(addr)->print_on(st); 359 return true; 360 } 361 return false; 362 } 363 364 void ZCollectedHeap::verify(VerifyOption option /* ignored */) { 365 _heap.verify(); 366 } 367 368 bool ZCollectedHeap::is_oop(oop object) const { 369 return CollectedHeap::is_oop(object) && _heap.is_oop(object); 370 } |