Mercurial > hg > truffle
diff src/share/vm/interpreter/interpreterRuntime.cpp @ 3464:be4ca325525a
Merge.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 27 Jul 2011 17:32:44 -0700 |
parents | 5ca1332171c8 38fa55e5e792 |
children | 04b9a2566eec |
line wrap: on
line diff
--- a/src/share/vm/interpreter/interpreterRuntime.cpp Wed Jul 27 17:24:11 2011 -0700 +++ b/src/share/vm/interpreter/interpreterRuntime.cpp Wed Jul 27 17:32:44 2011 -0700 @@ -139,9 +139,15 @@ ResourceMark rm(thread); methodHandle m (thread, method(thread)); Bytecode_loadconstant ldc(m, bci(thread)); - oop result = ldc.resolve_constant(THREAD); - DEBUG_ONLY(ConstantPoolCacheEntry* cpce = m->constants()->cache()->entry_at(ldc.cache_index())); - assert(result == cpce->f1(), "expected result for assembly code"); + oop result = ldc.resolve_constant(CHECK); +#ifdef ASSERT + { + // The bytecode wrappers aren't GC-safe so construct a new one + Bytecode_loadconstant ldc2(m, bci(thread)); + ConstantPoolCacheEntry* cpce = m->constants()->cache()->entry_at(ldc2.cache_index()); + assert(result == cpce->f1(), "expected result for assembly code"); + } +#endif } IRT_END @@ -356,25 +362,6 @@ THROW_MSG(vmSymbols::java_lang_ClassCastException(), message); IRT_END -// required can be either a MethodType, or a Class (for a single argument) -// actual (if not null) can be either a MethodHandle, or an arbitrary value (for a single argument) -IRT_ENTRY(void, InterpreterRuntime::throw_WrongMethodTypeException(JavaThread* thread, - oopDesc* required, - oopDesc* actual)) { - ResourceMark rm(thread); - char* message = SharedRuntime::generate_wrong_method_type_message(thread, required, actual); - - if (ProfileTraps) { - note_trap(thread, Deoptimization::Reason_constraint, CHECK); - } - - // create exception - THROW_MSG(vmSymbols::java_lang_invoke_WrongMethodTypeException(), message); -} -IRT_END - - - // exception_handler_for_exception(...) returns the continuation address, // the exception oop (via TLS) and sets the bci/bcp for the continuation. // The exception oop is returned to make sure it is preserved over GC (it