1.1 --- a/src/os/windows/vm/os_windows.cpp Fri Oct 31 10:34:20 2008 -0700 1.2 +++ b/src/os/windows/vm/os_windows.cpp Thu Dec 04 17:29:56 2008 -0800 1.3 @@ -2217,15 +2217,10 @@ 1.4 // We only expect null pointers in the stubs (vtable) 1.5 // the rest are checked explicitly now. 1.6 // 1.7 - CodeBlob* cb = CodeCache::find_blob(pc); 1.8 - if (cb != NULL) { 1.9 - if (VtableStubs::stub_containing(pc) != NULL) { 1.10 - if (((uintptr_t)addr) < os::vm_page_size() ) { 1.11 - // an access to the first page of VM--assume it is a null pointer 1.12 - return Handle_Exception(exceptionInfo, 1.13 - SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL)); 1.14 - } 1.15 - } 1.16 + if (((uintptr_t)addr) < os::vm_page_size() ) { 1.17 + // an access to the first page of VM--assume it is a null pointer 1.18 + address stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); 1.19 + if (stub != NULL) return Handle_Exception(exceptionInfo, stub); 1.20 } 1.21 } 1.22 } // in_java 1.23 @@ -2241,9 +2236,8 @@ 1.24 // Windows 98 reports faulting addresses incorrectly 1.25 if (!MacroAssembler::needs_explicit_null_check((intptr_t)addr) || 1.26 !os::win32::is_nt()) { 1.27 - 1.28 - return Handle_Exception(exceptionInfo, 1.29 - SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL)); 1.30 + address stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); 1.31 + if (stub != NULL) return Handle_Exception(exceptionInfo, stub); 1.32 } 1.33 report_error(t, exception_code, pc, exceptionInfo->ExceptionRecord, 1.34 exceptionInfo->ContextRecord);