comparison src/share/vm/runtime/deoptimization.cpp @ 17795:a9becfeecd1b

Merge
author kvn
date Wed, 22 Jan 2014 17:42:23 -0800
parents 69dc1be43fce 2b8e28fdf503
children 8a9bb7821e28 62c54fcc0a35
comparison
equal deleted inserted replaced
17794:3514ee402842 17795:a9becfeecd1b
1225 void Deoptimization::load_class_by_index(constantPoolHandle constant_pool, int index) { 1225 void Deoptimization::load_class_by_index(constantPoolHandle constant_pool, int index) {
1226 EXCEPTION_MARK; 1226 EXCEPTION_MARK;
1227 load_class_by_index(constant_pool, index, THREAD); 1227 load_class_by_index(constant_pool, index, THREAD);
1228 if (HAS_PENDING_EXCEPTION) { 1228 if (HAS_PENDING_EXCEPTION) {
1229 // Exception happened during classloading. We ignore the exception here, since it 1229 // Exception happened during classloading. We ignore the exception here, since it
1230 // is going to be rethrown since the current activation is going to be deoptimzied and 1230 // is going to be rethrown since the current activation is going to be deoptimized and
1231 // the interpreter will re-execute the bytecode. 1231 // the interpreter will re-execute the bytecode.
1232 CLEAR_PENDING_EXCEPTION; 1232 CLEAR_PENDING_EXCEPTION;
1233 // Class loading called java code which may have caused a stack
1234 // overflow. If the exception was thrown right before the return
1235 // to the runtime the stack is no longer guarded. Reguard the
1236 // stack otherwise if we return to the uncommon trap blob and the
1237 // stack bang causes a stack overflow we crash.
1238 assert(THREAD->is_Java_thread(), "only a java thread can be here");
1239 JavaThread* thread = (JavaThread*)THREAD;
1240 bool guard_pages_enabled = thread->stack_yellow_zone_enabled();
1241 if (!guard_pages_enabled) guard_pages_enabled = thread->reguard_stack();
1242 assert(guard_pages_enabled, "stack banging in uncommon trap blob may cause crash");
1233 } 1243 }
1234 } 1244 }
1235 1245
1236 JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint trap_request)) { 1246 JRT_ENTRY(void, Deoptimization::uncommon_trap_inner(JavaThread* thread, jint trap_request)) {
1237 HandleMark hm; 1247 HandleMark hm;