1.1 --- a/src/share/vm/runtime/thread.hpp Thu Dec 11 10:38:17 2014 +0000 1.2 +++ b/src/share/vm/runtime/thread.hpp Tue Nov 25 17:33:59 2014 +0100 1.3 @@ -933,6 +933,12 @@ 1.4 // This is set to popframe_pending to signal that top Java frame should be popped immediately 1.5 int _popframe_condition; 1.6 1.7 + // If reallocation of scalar replaced objects fails, we throw OOM 1.8 + // and during exception propagation, pop the top 1.9 + // _frames_to_pop_failed_realloc frames, the ones that reference 1.10 + // failed reallocations. 1.11 + int _frames_to_pop_failed_realloc; 1.12 + 1.13 #ifndef PRODUCT 1.14 int _jmp_ring_index; 1.15 struct { 1.16 @@ -1585,6 +1591,10 @@ 1.17 void clr_pop_frame_in_process(void) { _popframe_condition &= ~popframe_processing_bit; } 1.18 #endif 1.19 1.20 + int frames_to_pop_failed_realloc() const { return _frames_to_pop_failed_realloc; } 1.21 + void set_frames_to_pop_failed_realloc(int nb) { _frames_to_pop_failed_realloc = nb; } 1.22 + void dec_frames_to_pop_failed_realloc() { _frames_to_pop_failed_realloc--; } 1.23 + 1.24 private: 1.25 // Saved incoming arguments to popped frame. 1.26 // Used only when popped interpreted frame returns to deoptimized frame.