equal
deleted
inserted
replaced
539 // Do not crash the VM in such a case. |
539 // Do not crash the VM in such a case. |
540 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); |
540 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); |
541 if (cb != NULL) { |
541 if (cb != NULL) { |
542 CompiledMethod* nm = cb->as_compiled_method_or_null(); |
542 CompiledMethod* nm = cb->as_compiled_method_or_null(); |
543 bool is_unsafe_arraycopy = thread->doing_unsafe_access() && UnsafeCopyMemory::contains_pc(pc); |
543 bool is_unsafe_arraycopy = thread->doing_unsafe_access() && UnsafeCopyMemory::contains_pc(pc); |
544 if ((nm != NULL && nm->has_unsafe_access()) || is_unsafe_arraycopy)) { |
544 if ((nm != NULL && nm->has_unsafe_access()) || is_unsafe_arraycopy) { |
545 address next_pc = Assembler::locate_next_instruction(pc); |
545 address next_pc = Assembler::locate_next_instruction(pc); |
546 if (is_unsafe_arraycopy) { |
546 if (is_unsafe_arraycopy) { |
547 next_pc = UnsafeCopyMemory::page_error_continue_pc(pc); |
547 next_pc = UnsafeCopyMemory::page_error_continue_pc(pc); |
548 } |
548 } |
549 stub = SharedRuntime::handle_unsafe_access(thread, next_pc); |
549 stub = SharedRuntime::handle_unsafe_access(thread, next_pc); |