comparison src/share/vm/opto/runtime.cpp @ 1135:e66fd840cb6b

6893081: method handle & invokedynamic code needs additional cleanup (post 6815692, 6858164) Summary: During the work for 6829187 we have fixed a number of basic bugs which are logically grouped with 6815692 and 6858164 but which must be reviewed and pushed separately. Reviewed-by: kvn, never
author twisti
date Mon, 04 Jan 2010 18:38:08 +0100
parents 39b01ab7035a
children 4ce7240d622c
comparison
equal deleted inserted replaced
1134:0910903272e5 1135:e66fd840cb6b
1 /* 1 /*
2 * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
856 } 856 }
857 857
858 thread->set_exception_pc(pc); 858 thread->set_exception_pc(pc);
859 thread->set_exception_handler_pc(handler_address); 859 thread->set_exception_handler_pc(handler_address);
860 thread->set_exception_stack_size(0); 860 thread->set_exception_stack_size(0);
861
862 // Check if the exception PC is a MethodHandle call.
863 thread->set_is_method_handle_exception(nm->is_method_handle_return(pc));
861 } 864 }
862 865
863 // Restore correct return pc. Was saved above. 866 // Restore correct return pc. Was saved above.
864 thread->set_exception_oop(exception()); 867 thread->set_exception_oop(exception());
865 return handler_address; 868 return handler_address;