Mercurial > hg > graal-jvmci-8
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)) { |