Mercurial > hg > graal-compiler
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 |