More exception rework.
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
diff --git a/vm/Jni.c b/vm/Jni.c
index 0c8f4ca..4a95467 100644
--- a/vm/Jni.c
+++ b/vm/Jni.c
@@ -2351,7 +2351,7 @@
} 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 @@
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 @@
} 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 @@
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 @@
} 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);
}
diff --git a/vm/Profile.c b/vm/Profile.c
index 1d45715..d3cbf63 100644
--- a/vm/Profile.c
+++ b/vm/Profile.c
@@ -359,7 +359,7 @@
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 @@
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));
}
}
diff --git a/vm/native/dalvik_system_VMDebug.c b/vm/native/dalvik_system_VMDebug.c
index 78c12f8..36460e9 100644
--- a/vm/native/dalvik_system_VMDebug.c
+++ b/vm/native/dalvik_system_VMDebug.c
@@ -280,7 +280,7 @@
fd = dup(origFd);
if (fd < 0) {
- dvmThrowExceptionFmt("Ljava/lang/RuntimeException;",
+ dvmThrowExceptionFmtByClass(gDvm.exRuntimeException,
"dup(%d) failed: %s", origFd, strerror(errno));
RETURN_VOID();
}
diff --git a/vm/oo/Array.c b/vm/oo/Array.c
index 0fa0f80..0a47caa 100644
--- a/vm/oo/Array.c
+++ b/vm/oo/Array.c
@@ -51,7 +51,7 @@
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);