diff src/share/vm/c1/c1_LIRGenerator.cpp @ 12868:c775af091fe9

8025566: EXCEPTION_ACCESS_VIOLATION in compiled by C1 String.valueOf method Reviewed-by: kvn
author twisti
date Mon, 07 Oct 2013 10:41:56 -0700
parents 8d77d02828d9
children d13d7aba8c12
line wrap: on
line diff
--- a/src/share/vm/c1/c1_LIRGenerator.cpp	Mon Oct 07 14:13:28 2013 +0400
+++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Mon Oct 07 10:41:56 2013 -0700
@@ -3053,7 +3053,11 @@
   int offset = -1;
   LIR_Opr counter_holder;
   if (level == CompLevel_limited_profile) {
-    address counters_adr = method->ensure_method_counters();
+    MethodCounters* counters_adr = method->ensure_method_counters();
+    if (counters_adr == NULL) {
+      bailout("method counters allocation failed");
+      return;
+    }
     counter_holder = new_pointer_register();
     __ move(LIR_OprFact::intptrConst(counters_adr), counter_holder);
     offset = in_bytes(backedge ? MethodCounters::backedge_counter_offset() :