comparison src/share/vm/runtime/vm_operations.cpp @ 5111:422c979ff392

fixed two cases where DeoptAction was invalid
author Christian Haeubl <christian.haeubl@oracle.com>
date Thu, 15 Mar 2012 16:34:31 -0700
parents 0ebca2e35ca5
children 291ffc492eb6
comparison
equal deleted inserted replaced
5110:0ebca2e35ca5 5111:422c979ff392
123 _reason = reason; 123 _reason = reason;
124 } 124 }
125 125
126 126
127 void VM_DeoptimizeFrame::doit() { 127 void VM_DeoptimizeFrame::doit() {
128 assert(_reason > Deoptimization::Reason_none && _reason < Deoptimization::DeoptReason.Reason_LIMIT, "invalid deopt reason"); 128 assert(_reason > Deoptimization::Reason_none && _reason < Deoptimization::Reason_LIMIT, "invalid deopt reason");
129 Deoptimization::deoptimize_frame_internal(_thread, _id, (Deoptimization::DeoptReason)_reason); 129 Deoptimization::deoptimize_frame_internal(_thread, _id, (Deoptimization::DeoptReason)_reason);
130 } 130 }
131 131
132 132
133 #ifndef PRODUCT 133 #ifndef PRODUCT
156 // Biased llocking wants a updated register map 156 // Biased llocking wants a updated register map
157 for(StackFrameStream fst(thread, UseBiasedLocking); !fst.is_done(); fst.next()) { 157 for(StackFrameStream fst(thread, UseBiasedLocking); !fst.is_done(); fst.next()) {
158 if (fst.current()->can_be_deoptimized()) { 158 if (fst.current()->can_be_deoptimized()) {
159 if (fcount++ == fnum) { 159 if (fcount++ == fnum) {
160 fcount = 0; 160 fcount = 0;
161 Deoptimization::deoptimize(thread, *fst.current(), fst.register_map()); 161 Deoptimization::deoptimize(thread, *fst.current(), fst.register_map(), Deoptimization::Reason_constraint);
162 } 162 }
163 } 163 }
164 } 164 }
165 } 165 }
166 } 166 }