OSDN Git Service

More exception rework.
authorDan Bornstein <danfuzz@android.com>
Fri, 4 Mar 2011 01:51:05 +0000 (17:51 -0800)
committerDan Bornstein <danfuzz@android.com>
Fri, 4 Mar 2011 01:51:05 +0000 (17:51 -0800)
I believe this change gets rid of the remaining throw calls that
used quoted strings for the excpetion type argument.

Bug: 3500987
Change-Id: Id4f905883c1a4e4e5608a2c59986cbd602d416cc

vm/Jni.c
vm/Profile.c
vm/native/dalvik_system_VMDebug.c
vm/oo/Array.c

index 0c8f4ca..4a95467 100644 (file)
--- a/vm/Jni.c
+++ b/vm/Jni.c
@@ -2351,7 +2351,7 @@ static jmethodID GetMethodID(JNIEnv* env, jclass jclazz, const char* name,
     } else if (dvmIsInterfaceClass(clazz)) {
         Method* meth = dvmFindInterfaceMethodHierByDescriptor(clazz, name, sig);
         if (meth == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchMethodError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchMethodError,
                 "no method with name='%s' signature='%s' in interface %s",
                 name, sig, clazz->descriptor);
         }
@@ -2372,7 +2372,7 @@ static jmethodID GetMethodID(JNIEnv* env, jclass jclazz, const char* name,
             meth = NULL;
         }
         if (meth == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchMethodError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchMethodError,
                 "no method with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         } else {
@@ -2407,7 +2407,7 @@ static jfieldID GetFieldID(JNIEnv* env, jclass jclazz, const char* name,
     } else {
         id = (jfieldID) dvmFindInstanceFieldHier(clazz, name, sig);
         if (id == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchFieldError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchFieldError,
                 "no field with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         }
@@ -2449,7 +2449,7 @@ static jmethodID GetStaticMethodID(JNIEnv* env, jclass jclazz,
 
         id = (jmethodID) meth;
         if (id == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchMethodError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchMethodError,
                 "no static method with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         }
@@ -2476,7 +2476,7 @@ static jfieldID GetStaticFieldID(JNIEnv* env, jclass jclazz,
     } else {
         id = (jfieldID) dvmFindStaticField(clazz, name, sig);
         if (id == NULL) {
-            dvmThrowExceptionFmt("Ljava/lang/NoSuchFieldError;",
+            dvmThrowExceptionFmtByClass(gDvm.exNoSuchFieldError,
                 "no static field with name='%s' signature='%s' in class %s",
                 name, sig, clazz->descriptor);
         }
index 1d45715..d3cbf63 100644 (file)
@@ -359,7 +359,7 @@ void dvmMethodTraceStart(const char* traceFileName, int traceFd, int bufferSize,
             int err = errno;
             LOGE("Unable to open trace file '%s': %s\n",
                 traceFileName, strerror(err));
-            dvmThrowExceptionFmt("Ljava/lang/RuntimeException;",
+            dvmThrowExceptionFmtByClass(gDvm.exRuntimeException,
                 "Unable to open trace file '%s': %s",
                 traceFileName, strerror(err));
             goto fail;
@@ -636,7 +636,7 @@ void dvmMethodTraceStop(void)
             int err = errno;
             LOGE("trace fwrite(%d) failed: %s\n",
                 finalCurOffset, strerror(err));
-            dvmThrowExceptionFmt("Ljava/lang/RuntimeException;",
+            dvmThrowExceptionFmtByClass(gDvm.exRuntimeException,
                 "Trace data write failed: %s", strerror(err));
         }
     }
index 78c12f8..36460e9 100644 (file)
@@ -280,7 +280,7 @@ static void Dalvik_dalvik_system_VMDebug_startMethodTracingNative(const u4* args
 
         fd = dup(origFd);
         if (fd < 0) {
-            dvmThrowExceptionFmt("Ljava/lang/RuntimeException;",
+            dvmThrowExceptionFmtByClass(gDvm.exRuntimeException,
                 "dup(%d) failed: %s", origFd, strerror(errno));
             RETURN_VOID();
         }
index 0fa0f80..0a47caa 100644 (file)
@@ -51,7 +51,7 @@ ArrayObject* dvmAllocArray(ClassObject* arrayClass, size_t length,
     size_t totalSize = elementSize + headerSize;
     if (elementSize >> elementShift != length || totalSize < elementSize) {
         char *descriptor = dvmHumanReadableDescriptor(arrayClass->descriptor);
-        dvmThrowExceptionFmt("Ljava/lang/OutOfMemoryError;",
+        dvmThrowExceptionFmtByClass(gDvm.exOutOfMemoryError,
                              "%s of length %zd exceeds the VM limit",
                              descriptor, length);
         free(descriptor);