The callers to this function have unhandled oops but this function can safepoint.
unsigned int ProtectionDomainCacheTable::compute_hash(oop protection_domain) {
+ // Identity hash can safepoint, so keep protection domain in a Handle.
return (unsigned int)(protection_domain->identity_hash());
}
This is why we pass Handle whenever possible, since protection_domain is in a Handle up the call chain to this function.