comparison src/share/vm/opto/parseHelper.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 6f3fd5150b67
children b2ee5dc63353
comparison
equal deleted inserted replaced
12867:5741fc86a2ee 12868:c775af091fe9
341 void Parse::increment_and_test_invocation_counter(int limit) { 341 void Parse::increment_and_test_invocation_counter(int limit) {
342 if (!count_invocations()) return; 342 if (!count_invocations()) return;
343 343
344 // Get the Method* node. 344 // Get the Method* node.
345 ciMethod* m = method(); 345 ciMethod* m = method();
346 address counters_adr = m->ensure_method_counters(); 346 MethodCounters* counters_adr = m->ensure_method_counters();
347 if (counters_adr == NULL) {
348 C->record_failure("method counters allocation failed");
349 return;
350 }
347 351
348 Node* ctrl = control(); 352 Node* ctrl = control();
349 const TypePtr* adr_type = TypeRawPtr::make(counters_adr); 353 const TypePtr* adr_type = TypeRawPtr::make((address) counters_adr);
350 Node *counters_node = makecon(adr_type); 354 Node *counters_node = makecon(adr_type);
351 Node* adr_iic_node = basic_plus_adr(counters_node, counters_node, 355 Node* adr_iic_node = basic_plus_adr(counters_node, counters_node,
352 MethodCounters::interpreter_invocation_counter_offset_in_bytes()); 356 MethodCounters::interpreter_invocation_counter_offset_in_bytes());
353 Node* cnt = make_load(ctrl, adr_iic_node, TypeInt::INT, T_INT, adr_type); 357 Node* cnt = make_load(ctrl, adr_iic_node, TypeInt::INT, T_INT, adr_type);
354 358