comparison src/share/vm/prims/jvmtiImpl.cpp @ 23286:dd9cc155639c

Merge with jdk8u66-b17
author Gilles Duboscq <gilles.m.duboscq@oracle.com>
date Thu, 07 Jan 2016 17:28:46 +0100
parents 52b4284cb496 9cfc607cb03e
children
comparison
equal deleted inserted replaced
22786:ac649db7fec4 23286:dd9cc155639c
23 */ 23 */
24 24
25 #include "precompiled.hpp" 25 #include "precompiled.hpp"
26 #include "classfile/systemDictionary.hpp" 26 #include "classfile/systemDictionary.hpp"
27 #include "interpreter/interpreter.hpp" 27 #include "interpreter/interpreter.hpp"
28 #include "interpreter/oopMapCache.hpp"
28 #include "jvmtifiles/jvmtiEnv.hpp" 29 #include "jvmtifiles/jvmtiEnv.hpp"
29 #include "memory/resourceArea.hpp" 30 #include "memory/resourceArea.hpp"
30 #include "oops/instanceKlass.hpp" 31 #include "oops/instanceKlass.hpp"
31 #include "prims/jvmtiAgentThread.hpp" 32 #include "prims/jvmtiAgentThread.hpp"
32 #include "prims/jvmtiEventController.inline.hpp" 33 #include "prims/jvmtiEventController.inline.hpp"
742 } 743 }
743 return true; 744 return true;
744 } 745 }
745 746
746 void VM_GetOrSetLocal::doit() { 747 void VM_GetOrSetLocal::doit() {
748 InterpreterOopMap oop_mask;
749 _jvf->method()->mask_for(_jvf->bci(), &oop_mask);
750 if (oop_mask.is_dead(_index)) {
751 // The local can be invalid and uninitialized in the scope of current bci
752 _result = JVMTI_ERROR_INVALID_SLOT;
753 return;
754 }
747 if (_set) { 755 if (_set) {
748 // Force deoptimization of frame if compiled because it's 756 // Force deoptimization of frame if compiled because it's
749 // possible the compiler emitted some locals as constant values, 757 // possible the compiler emitted some locals as constant values,
750 // meaning they are not mutable. 758 // meaning they are not mutable.
751 if (can_be_deoptimized(_jvf)) { 759 if (can_be_deoptimized(_jvf)) {