Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/sharedRuntime.cpp @ 10276:f0bc60565ba8
7196277: JSR 292: Two jck/runtime tests crash on java.lang.invoke.MethodHandle.invokeExact
Reviewed-by: jrose, kvn
author | twisti |
---|---|
date | Mon, 06 May 2013 13:53:13 -0700 |
parents | a5c95fcf7cb7 |
children | 28e5aed7f3a6 0f03ff49c720 |
comparison
equal
deleted
inserted
replaced
10275:d73c88e524ff | 10276:f0bc60565ba8 |
---|---|
881 ShouldNotReachHere(); | 881 ShouldNotReachHere(); |
882 return NULL; | 882 return NULL; |
883 } | 883 } |
884 | 884 |
885 | 885 |
886 JNI_ENTRY(void, throw_unsatisfied_link_error(JNIEnv* env, ...)) | 886 /** |
887 * Throws an java/lang/UnsatisfiedLinkError. The address of this method is | |
888 * installed in the native function entry of all native Java methods before | |
889 * they get linked to their actual native methods. | |
890 * | |
891 * \note | |
892 * This method actually never gets called! The reason is because | |
893 * the interpreter's native entries call NativeLookup::lookup() which | |
894 * throws the exception when the lookup fails. The exception is then | |
895 * caught and forwarded on the return from NativeLookup::lookup() call | |
896 * before the call to the native function. This might change in the future. | |
897 */ | |
898 JNI_ENTRY(void*, throw_unsatisfied_link_error(JNIEnv* env, ...)) | |
887 { | 899 { |
888 THROW(vmSymbols::java_lang_UnsatisfiedLinkError()); | 900 // We return a bad value here to make sure that the exception is |
889 } | 901 // forwarded before we look at the return value. |
890 JNI_END | 902 THROW_(vmSymbols::java_lang_UnsatisfiedLinkError(), (void*)badJNIHandle); |
891 | |
892 JNI_ENTRY(void, throw_unsupported_operation_exception(JNIEnv* env, ...)) | |
893 { | |
894 THROW(vmSymbols::java_lang_UnsupportedOperationException()); | |
895 } | 903 } |
896 JNI_END | 904 JNI_END |
897 | 905 |
898 address SharedRuntime::native_method_throw_unsatisfied_link_error_entry() { | 906 address SharedRuntime::native_method_throw_unsatisfied_link_error_entry() { |
899 return CAST_FROM_FN_PTR(address, &throw_unsatisfied_link_error); | 907 return CAST_FROM_FN_PTR(address, &throw_unsatisfied_link_error); |
900 } | |
901 | |
902 address SharedRuntime::native_method_throw_unsupported_operation_exception_entry() { | |
903 return CAST_FROM_FN_PTR(address, &throw_unsupported_operation_exception); | |
904 } | 908 } |
905 | 909 |
906 | 910 |
907 #ifndef PRODUCT | 911 #ifndef PRODUCT |
908 JRT_ENTRY(intptr_t, SharedRuntime::trace_bytecode(JavaThread* thread, intptr_t preserve_this_value, intptr_t tos, intptr_t tos2)) | 912 JRT_ENTRY(intptr_t, SharedRuntime::trace_bytecode(JavaThread* thread, intptr_t preserve_this_value, intptr_t tos, intptr_t tos2)) |