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