equal
deleted
inserted
replaced
200 |
200 |
201 // Check we're not about to run out of stack |
201 // Check we're not about to run out of stack |
202 if (stack_overflow_imminent(thread)) { |
202 if (stack_overflow_imminent(thread)) { |
203 CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread)); |
203 CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread)); |
204 goto unwind_and_return; |
204 goto unwind_and_return; |
|
205 } |
|
206 |
|
207 // Update the invocation counter |
|
208 if ((UseCompiler || CountCompiledCalls) && !method->is_synchronized()) { |
|
209 thread->set_do_not_unlock(); |
|
210 InvocationCounter *counter = method->invocation_counter(); |
|
211 counter->increment(); |
|
212 if (counter->reached_InvocationLimit()) { |
|
213 CALL_VM_NOCHECK( |
|
214 InterpreterRuntime::frequency_counter_overflow(thread, NULL)); |
|
215 if (HAS_PENDING_EXCEPTION) |
|
216 goto unwind_and_return; |
|
217 } |
|
218 thread->clr_do_not_unlock(); |
205 } |
219 } |
206 |
220 |
207 // Lock if necessary |
221 // Lock if necessary |
208 BasicObjectLock *monitor; |
222 BasicObjectLock *monitor; |
209 monitor = NULL; |
223 monitor = NULL; |