changeset 1822:1375bc8922e4

6987763: assert(kind() == EmptyExceptionState) failed: only EmptyExceptionStates can be modified Reviewed-by: roland, kvn, iveresov
author never
date Mon, 27 Sep 2010 20:44:18 -0700
parents df015ec64052
children 8aa5fd5d2046
files src/share/vm/c1/c1_ValueStack.hpp
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/c1/c1_ValueStack.hpp	Mon Sep 27 15:04:40 2010 -0700
+++ b/src/share/vm/c1/c1_ValueStack.hpp	Mon Sep 27 20:44:18 2010 -0700
@@ -68,7 +68,12 @@
   ValueStack* copy(Kind new_kind, int new_bci)   { return new ValueStack(this, new_kind, new_bci); }
   ValueStack* copy_for_parsing()                 { return new ValueStack(this, Parsing, -99); }
 
-  void set_caller_state(ValueStack* s)           { assert(kind() == EmptyExceptionState, "only EmptyExceptionStates can be modified"); _caller_state = s; }
+  void set_caller_state(ValueStack* s)           {
+    assert(kind() == EmptyExceptionState ||
+           (Compilation::current()->env()->jvmti_can_access_local_variables() && kind() == ExceptionState),
+           "only EmptyExceptionStates can be modified");
+    _caller_state = s;
+  }
 
   bool is_same(ValueStack* s);                   // returns true if this & s's types match (w/o checking locals)