mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8156088: Reintegrate 8153892: Handle unsafe access error directly in signal handler instead of going through a stub
Reviewed-by: stuefe, dholmes
This commit is contained in:
parent
4247e12f6b
commit
0588e8953c
17 changed files with 54 additions and 233 deletions
|
@ -1762,6 +1762,21 @@ methodHandle SharedRuntime::reresolve_call_site(JavaThread *thread, TRAPS) {
|
|||
return callee_method;
|
||||
}
|
||||
|
||||
address SharedRuntime::handle_unsafe_access(JavaThread* thread, address next_pc) {
|
||||
// The faulting unsafe accesses should be changed to throw the error
|
||||
// synchronously instead. Meanwhile the faulting instruction will be
|
||||
// skipped over (effectively turning it into a no-op) and an
|
||||
// asynchronous exception will be raised which the thread will
|
||||
// handle at a later point. If the instruction is a load it will
|
||||
// return garbage.
|
||||
|
||||
// Request an async exception.
|
||||
thread->set_pending_unsafe_access_error();
|
||||
|
||||
// Return address of next instruction to execute.
|
||||
return next_pc;
|
||||
}
|
||||
|
||||
#ifdef ASSERT
|
||||
void SharedRuntime::check_member_name_argument_is_last_argument(const methodHandle& method,
|
||||
const BasicType* sig_bt,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue