Mercurial > hg > truffle
comparison src/share/vm/graal/graalVMEntries.cpp @ 3699:67e92894d065
Set catch all to true if the caught class is java.lang.Throwable.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 24 Nov 2011 17:45:19 +0100 |
parents | ff6582ef15b3 |
children | b5c649e4e700 |
comparison
equal
deleted
inserted
replaced
3695:7c26db3259c6 | 3699:67e92894d065 |
---|---|
89 HotSpotExceptionHandler::set_catchClass(entry, NULL); | 89 HotSpotExceptionHandler::set_catchClass(entry, NULL); |
90 } else { | 90 } else { |
91 constantPoolOop cp = instanceKlass::cast(method->method_holder())->constants(); | 91 constantPoolOop cp = instanceKlass::cast(method->method_holder())->constants(); |
92 KlassHandle loading_klass = method->method_holder(); | 92 KlassHandle loading_klass = method->method_holder(); |
93 Handle catch_class = GraalCompiler::get_RiType(cp, catch_class_index, loading_klass, CHECK_NULL); | 93 Handle catch_class = GraalCompiler::get_RiType(cp, catch_class_index, loading_klass, CHECK_NULL); |
94 HotSpotExceptionHandler::set_catchClass(entry, catch_class()); | 94 if (catch_class->klass() == HotSpotTypeResolved::klass() && java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(catch_class)) == SystemDictionary::Throwable_klass()) { |
95 HotSpotExceptionHandler::set_catchClass(entry, NULL); | |
96 HotSpotExceptionHandler::set_catchClassIndex(entry, 0); | |
97 } else { | |
98 HotSpotExceptionHandler::set_catchClass(entry, catch_class()); | |
99 } | |
95 } | 100 } |
96 array->obj_at_put(i, entry()); | 101 array->obj_at_put(i, entry()); |
97 } | 102 } |
98 | 103 |
99 return (jobjectArray) JNIHandles::make_local(array()); | 104 return (jobjectArray) JNIHandles::make_local(array()); |