comparison src/share/vm/c1/c1_Runtime1.cpp @ 12876:8b80b262e501

8005173: assert(false) failed: DEBUG MESSAGE: exception oop must be empty (macroAssembler_x86.cpp:625) Reviewed-by: kvn, iveresov
author twisti
date Fri, 11 Oct 2013 10:14:02 -0700
parents d0cfa6502dfe
children 096c224171c4 3c3953fb3f2a 78bbf4d43a14
comparison
equal deleted inserted replaced
12875:d13d7aba8c12 12876:8b80b262e501
540 540
541 // Clear out the exception oop and pc since looking up an 541 // Clear out the exception oop and pc since looking up an
542 // exception handler can cause class loading, which might throw an 542 // exception handler can cause class loading, which might throw an
543 // exception and those fields are expected to be clear during 543 // exception and those fields are expected to be clear during
544 // normal bytecode execution. 544 // normal bytecode execution.
545 thread->set_exception_oop(NULL); 545 thread->clear_exception_oop_and_pc();
546 thread->set_exception_pc(NULL);
547 546
548 continuation = SharedRuntime::compute_compiled_exc_handler(nm, pc, exception, false, false); 547 continuation = SharedRuntime::compute_compiled_exc_handler(nm, pc, exception, false, false);
549 // If an exception was thrown during exception dispatch, the exception oop may have changed 548 // If an exception was thrown during exception dispatch, the exception oop may have changed
550 thread->set_exception_oop(exception()); 549 thread->set_exception_oop(exception());
551 thread->set_exception_pc(pc); 550 thread->set_exception_pc(pc);