diff src/share/vm/c1/c1_LIRGenerator.cpp @ 17900:ce9fd31ffd14

8039975: SIGSEGV in MethodData::next_data(ProfileData*) Summary: profiling code in interpreter broken when argument profiling is off. Reviewed-by: iveresov, kvn
author roland
date Fri, 18 Apr 2014 14:25:21 +0200
parents add2caa66e7e
children 45e59fae8f2b
line wrap: on
line diff
--- a/src/share/vm/c1/c1_LIRGenerator.cpp	Fri Feb 21 09:48:52 2014 +0100
+++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Fri Apr 18 14:25:21 2014 +0200
@@ -3186,8 +3186,8 @@
 #ifdef ASSERT
       Bytecodes::Code code = x->method()->raw_code_at_bci(x->bci_of_invoke());
       int n = x->nb_profiled_args();
-      assert(MethodData::profile_parameters() && x->inlined() &&
-             ((code == Bytecodes::_invokedynamic && n <= 1) || (code == Bytecodes::_invokehandle && n <= 2)),
+      assert(MethodData::profile_parameters() && (MethodData::profile_arguments_jsr292_only() ||
+                                                  (x->inlined() && ((code == Bytecodes::_invokedynamic && n <= 1) || (code == Bytecodes::_invokehandle && n <= 2)))),
              "only at JSR292 bytecodes");
 #endif
     }