8160399: is_oop_or_null involves undefined behavior

8164984: Improper use of is_oop in production code

Replace oop->is_oop*() with oopDesc::is_oop*(oop) so this pointer can be verified

Reviewed-by: iklam, kvn, dholmes
This commit is contained in:
Coleen Phillimore 2017-08-23 14:52:55 -04:00
parent 61a9f88ca7
commit 3d6d1ec64b
61 changed files with 195 additions and 209 deletions

View file

@ -3187,7 +3187,7 @@ class PrintAndVerifyOopClosure: public OopClosure {
oop obj = oopDesc::load_decode_heap_oop(p);
if (obj == NULL) return;
tty->print(INTPTR_FORMAT ": ", p2i(p));
if (obj->is_oop_or_null()) {
if (oopDesc::is_oop_or_null(obj)) {
if (obj->is_objArray()) {
tty->print_cr("valid objArray: " INTPTR_FORMAT, p2i(obj));
} else {