Mercurial > hg > shark > hotspot
changeset 2260:28d718a1aa7b
More
author | Gary Benson <gbenson@redhat.com> |
---|---|
date | Tue, 01 Mar 2011 16:09:39 +0000 |
parents | fe7dc8f48c6c |
children | 0357d9c5ada6 |
files | src/cpu/zero/vm/cppInterpreter_zero.cpp |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Mar 01 16:03:31 2011 +0000 +++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Mar 01 16:09:39 2011 +0000 @@ -798,6 +798,14 @@ if (objKlassOop != klassOf && !objKlassOop->klass_part()->is_subtype_of(klassOf)) { + + // Unwind + oop method_type = java_dyn_MethodHandle::type(method_handle); + stack->set_sp(stack->sp() + + java_dyn_MethodTypeForm::vmslots( + java_dyn_MethodType::form(method_type))); + + // Throw ResourceMark rm(THREAD); const char* objName = Klass::cast(objKlassOop)->external_name(); const char* klassName = Klass::cast(klassOf)->external_name(); @@ -807,7 +815,6 @@ InterpreterRuntime::throw_ClassCastException(thread, message)); // NB all oops trashed! assert(HAS_PENDING_EXCEPTION, "should do"); - // XXX unwind? return; } }