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

@ -1104,7 +1104,7 @@ void ThreadSafepointState::handle_polling_page_exception() {
// the other registers. In order to preserve it over GCs we need
// to keep it in a handle.
oop result = caller_fr.saved_oop_result(&map);
assert(result == NULL || result->is_oop(), "must be oop");
assert(oopDesc::is_oop_or_null(result), "must be oop");
return_value = Handle(thread(), result);
assert(Universe::heap()->is_in_or_null(result), "must be heap pointer");
}