comparison src/share/vm/runtime/deoptimization.cpp @ 3167:132aa6f2bbc0

Fixed rethrow exception frame state (again.. and this time added some useful assertions).
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 06 Jul 2011 17:02:15 +0200
parents 5ca1332171c8
children be4ca325525a
comparison
equal deleted inserted replaced
3166:462c89186179 3167:132aa6f2bbc0
1245 if (trap_scope->rethrow_exception()) { 1245 if (trap_scope->rethrow_exception()) {
1246 if (TraceDeoptimization) { 1246 if (TraceDeoptimization) {
1247 tty->print_cr("Exception to be rethrown in the interpreter for method %s::%s at bci %d", instanceKlass::cast(trap_method->method_holder())->name()->as_C_string(), trap_method->name()->as_C_string(), trap_bci); 1247 tty->print_cr("Exception to be rethrown in the interpreter for method %s::%s at bci %d", instanceKlass::cast(trap_method->method_holder())->name()->as_C_string(), trap_method->name()->as_C_string(), trap_bci);
1248 } 1248 }
1249 GrowableArray<ScopeValue*>* expressions = trap_scope->expressions(); 1249 GrowableArray<ScopeValue*>* expressions = trap_scope->expressions();
1250 guarantee(expressions != NULL, "must have exception to throw");
1250 ScopeValue* topOfStack = expressions->top(); 1251 ScopeValue* topOfStack = expressions->top();
1251 Handle topOfStackObj = cvf->create_stack_value(topOfStack)->get_obj(); 1252 Handle topOfStackObj = cvf->create_stack_value(topOfStack)->get_obj();
1252 THREAD->set_pending_exception(topOfStackObj(), NULL, 0); 1253 THREAD->set_pending_exception(topOfStackObj(), NULL, 0);
1253 } 1254 }
1254 1255