src/hotspot/os/windows/os_windows.cpp
changeset 47892 895fddb973a1
parent 47881 0ce0ac68ace7
child 47903 7f22774a5f42
equal deleted inserted replaced
47891:fa736014cf28 47892:895fddb973a1
  2485                    exceptionInfo->ContextRecord);
  2485                    exceptionInfo->ContextRecord);
  2486       return EXCEPTION_CONTINUE_SEARCH;
  2486       return EXCEPTION_CONTINUE_SEARCH;
  2487     } // /EXCEPTION_ACCESS_VIOLATION
  2487     } // /EXCEPTION_ACCESS_VIOLATION
  2488     // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2488     // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2489 
  2489 
       
  2490     if (exception_code == EXCEPTION_IN_PAGE_ERROR) {
       
  2491       CompiledMethod* nm = NULL;
       
  2492       JavaThread* thread = (JavaThread*)t;
       
  2493       if (in_java) {
       
  2494         CodeBlob* cb = CodeCache::find_blob_unsafe(pc);
       
  2495         nm = (cb != NULL) ? cb->as_compiled_method_or_null() : NULL;
       
  2496       }
       
  2497       if ((thread->thread_state() == _thread_in_vm &&
       
  2498           thread->doing_unsafe_access()) ||
       
  2499           (nm != NULL && nm->has_unsafe_access())) {
       
  2500         return Handle_Exception(exceptionInfo, SharedRuntime::handle_unsafe_access(thread, (address)Assembler::locate_next_instruction(pc)));
       
  2501       }
       
  2502     }
       
  2503 
  2490     if (in_java) {
  2504     if (in_java) {
  2491       switch (exception_code) {
  2505       switch (exception_code) {
  2492       case EXCEPTION_INT_DIVIDE_BY_ZERO:
  2506       case EXCEPTION_INT_DIVIDE_BY_ZERO:
  2493         return Handle_Exception(exceptionInfo, SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_DIVIDE_BY_ZERO));
  2507         return Handle_Exception(exceptionInfo, SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_DIVIDE_BY_ZERO));
  2494 
  2508