comparison src/share/vm/interpreter/interpreterRuntime.cpp @ 3153:5ca1332171c8

Fixed an issue in the HotSpot code for rethrowing an exception at deopt (wrong values on the expression stack caused a crash when GC and deopt happened at the same time).
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Tue, 05 Jul 2011 18:55:22 +0200
parents fecdb0a65fb2
children be4ca325525a
comparison
equal deleted inserted replaced
3152:3e89c4c5f37f 3153:5ca1332171c8
457 } 457 }
458 } 458 }
459 } while (should_repeat == true); 459 } while (should_repeat == true);
460 460
461 if (h_method->method_data() != NULL) { 461 if (h_method->method_data() != NULL) {
462 ResourceMark rm(thread);
462 ProfileData* pdata = h_method->method_data()->allocate_bci_to_data(current_bci); 463 ProfileData* pdata = h_method->method_data()->allocate_bci_to_data(current_bci);
463 if (pdata != NULL) { 464 if (pdata != NULL) {
464 int tstate0 = pdata->trap_state(); 465 int tstate0 = pdata->trap_state();
465 int tstate1 = Deoptimization::trap_state_set_recompiled(tstate0, true); 466 int tstate1 = Deoptimization::trap_state_set_recompiled(tstate0, true);
466 if (tstate1 != tstate0) { 467 if (tstate1 != tstate0) {