src/share/vm/runtime/deoptimization.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/runtime/deoptimization.cpp Wed Jan 15 01:42:23 2014
--- new/src/share/vm/runtime/deoptimization.cpp Wed Jan 15 01:42:23 2014
*** 378,388 ****
--- 378,388 ----
// than simply use array->sender.pc(). This requires us to walk the current set of frames
//
frame deopt_sender = stub_frame.sender(&dummy_map); // First is the deoptee frame
deopt_sender = deopt_sender.sender(&dummy_map); // Now deoptee caller
! // It's possible that the number of paramters at the call site is
! // It's possible that the number of parameters at the call site is
// different than number of arguments in the callee when method
// handles are used. If the caller is interpreted get the real
// value so that the proper amount of space can be added to it's
// frame.
bool caller_was_method_handle = false;
*** 538,548 ****
--- 538,548 ----
#ifndef CC_INTERP
// Regardless of whether we entered this routine with the pending
// popframe condition bit set, we should always clear it now
thread->clear_popframe_condition();
#else
! // C++ interpeter will clear has_pending_popframe when it enters
! // C++ interpreter will clear has_pending_popframe when it enters
// with method_resume. For deopt_resume2 we clear it now.
if (thread->popframe_forcing_deopt_reexecution())
thread->clear_popframe_condition();
#endif /* CC_INTERP */
}
*** 1222,1232 ****
--- 1222,1232 ----
void Deoptimization::load_class_by_index(constantPoolHandle constant_pool, int index) {
EXCEPTION_MARK;
load_class_by_index(constant_pool, index, THREAD);
if (HAS_PENDING_EXCEPTION) {
// Exception happened during classloading. We ignore the exception here, since it
! // is going to be rethrown since the current activation is going to be deoptimzied and
! // is going to be rethrown since the current activation is going to be deoptimized and
// the interpreter will re-execute the bytecode.
CLEAR_PENDING_EXCEPTION;
}
}
src/share/vm/runtime/deoptimization.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File