equal
deleted
inserted
replaced
811 // 1. Inline-cache check in C2I handler blob, |
811 // 1. Inline-cache check in C2I handler blob, |
812 // 2. Inline-cache check in nmethod, or |
812 // 2. Inline-cache check in nmethod, or |
813 // 3. Implict null exception in nmethod |
813 // 3. Implict null exception in nmethod |
814 |
814 |
815 if (!cb->is_nmethod()) { |
815 if (!cb->is_nmethod()) { |
816 guarantee(cb->is_adapter_blob() || cb->is_method_handles_adapter_blob(), |
816 bool is_in_blob = cb->is_adapter_blob() || cb->is_method_handles_adapter_blob(); |
817 "exception happened outside interpreter, nmethods and vtable stubs (1)"); |
817 if (!is_in_blob) { |
|
818 cb->print(); |
|
819 fatal(err_msg("exception happened outside interpreter, nmethods and vtable stubs at pc " INTPTR_FORMAT, pc)); |
|
820 } |
818 Events::log_exception(thread, "NullPointerException in code blob at " INTPTR_FORMAT, pc); |
821 Events::log_exception(thread, "NullPointerException in code blob at " INTPTR_FORMAT, pc); |
819 // There is no handler here, so we will simply unwind. |
822 // There is no handler here, so we will simply unwind. |
820 return StubRoutines::throw_NullPointerException_at_call_entry(); |
823 return StubRoutines::throw_NullPointerException_at_call_entry(); |
821 } |
824 } |
822 |
825 |