hotspot/src/share/vm/prims/unsafe.cpp
changeset 22786 86644d9539c2
parent 20282 7f9cbdf89af2
child 22796 bb0ea482a99e
equal deleted inserted replaced
22782:a3b1d68b373d 22786:86644d9539c2
   856 static inline void throw_new(JNIEnv *env, const char *ename) {
   856 static inline void throw_new(JNIEnv *env, const char *ename) {
   857   char buf[100];
   857   char buf[100];
   858   strcpy(buf, "java/lang/");
   858   strcpy(buf, "java/lang/");
   859   strcat(buf, ename);
   859   strcat(buf, ename);
   860   jclass cls = env->FindClass(buf);
   860   jclass cls = env->FindClass(buf);
       
   861   if (env->ExceptionCheck()) {
       
   862     env->ExceptionClear();
       
   863     tty->print_cr("Unsafe: cannot throw %s because FindClass has failed", buf);
       
   864     return;
       
   865   }
   861   char* msg = NULL;
   866   char* msg = NULL;
   862   env->ThrowNew(cls, msg);
   867   env->ThrowNew(cls, msg);
   863 }
   868 }
   864 
   869 
   865 static jclass Unsafe_DefineClass_impl(JNIEnv *env, jstring name, jbyteArray data, int offset, int length, jobject loader, jobject pd) {
   870 static jclass Unsafe_DefineClass_impl(JNIEnv *env, jstring name, jbyteArray data, int offset, int length, jobject loader, jobject pd) {