summaryrefslogtreecommitdiffstats
path: root/core/jni/com_android_internal_os_ZygoteInit.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2011-04-08 14:10:28 -0700
committerElliott Hughes <enh@google.com>2011-04-08 15:01:19 -0700
commit69a017bc1d1649350f830dfada5c6ed5eac0b770 (patch)
tree6ecc6d9658272b268ce931d417930e2ea1bfa3f7 /core/jni/com_android_internal_os_ZygoteInit.cpp
parent5008e92d1fd573d926cd55c39ca723a6fbdf7c4b (diff)
downloadframeworks_base-69a017bc1d1649350f830dfada5c6ed5eac0b770.zip
frameworks_base-69a017bc1d1649350f830dfada5c6ed5eac0b770.tar.gz
frameworks_base-69a017bc1d1649350f830dfada5c6ed5eac0b770.tar.bz2
More JNI exception-throwing cleanup.
There are a few (unimportant) bug fixes here. There were several attempts to throw exceptions in situations where there's already a pending exception. There were also cases where the code was wrong; it was checking for a NULL return from Get*ArrayElements and throwing NPE, but passing NULL is an error that causes a crash and a NULL return means an exception has already been thrown. I didn't want to get into the Scoped* classes just yet, but that was by far the easiest way to fix this. Change-Id: I0b31160ee51b96e82539f6514b8412b149dba7c3
Diffstat (limited to 'core/jni/com_android_internal_os_ZygoteInit.cpp')
-rw-r--r--core/jni/com_android_internal_os_ZygoteInit.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/core/jni/com_android_internal_os_ZygoteInit.cpp b/core/jni/com_android_internal_os_ZygoteInit.cpp
index 52e8f42..e627e4a 100644
--- a/core/jni/com_android_internal_os_ZygoteInit.cpp
+++ b/core/jni/com_android_internal_os_ZygoteInit.cpp
@@ -94,7 +94,7 @@ static jint com_android_internal_os_ZygoteInit_getpgid(
return ret;
}
-static void com_android_internal_os_ZygoteInit_reopenStdio(JNIEnv* env,
+static void com_android_internal_os_ZygoteInit_reopenStdio(JNIEnv* env,
jobject clazz, jobject in, jobject out, jobject errfd)
{
int fd;
@@ -131,7 +131,7 @@ static void com_android_internal_os_ZygoteInit_reopenStdio(JNIEnv* env,
} while (err < 0 && errno == EINTR);
}
-static void com_android_internal_os_ZygoteInit_closeDescriptor(JNIEnv* env,
+static void com_android_internal_os_ZygoteInit_closeDescriptor(JNIEnv* env,
jobject clazz, jobject descriptor)
{
int fd;
@@ -206,7 +206,7 @@ static void com_android_internal_os_ZygoteInit_setCapabilities (JNIEnv *env,
capdata.effective = effective;
capdata.permitted = permitted;
- err = capset (&capheader, &capdata);
+ err = capset (&capheader, &capdata);
if (err < 0) {
jniThrowIOException(env, errno);
@@ -231,7 +231,7 @@ static jlong com_android_internal_os_ZygoteInit_capgetPermitted (JNIEnv *env,
capheader.version = _LINUX_CAPABILITY_VERSION;
capheader.pid = pid;
- err = capget (&capheader, &capdata);
+ err = capget (&capheader, &capdata);
if (err < 0) {
jniThrowIOException(env, errno);
@@ -243,11 +243,10 @@ static jlong com_android_internal_os_ZygoteInit_capgetPermitted (JNIEnv *env,
}
static jint com_android_internal_os_ZygoteInit_selectReadable (
- JNIEnv *env, jobject clazz, jobjectArray fds)
+ JNIEnv *env, jobject clazz, jobjectArray fds)
{
if (fds == NULL) {
- jniThrowException(env, "java/lang/NullPointerException",
- "fds == null");
+ jniThrowNullPointerException(env, "fds == null");
return -1;
}
@@ -311,7 +310,7 @@ static jint com_android_internal_os_ZygoteInit_selectReadable (
}
static jobject com_android_internal_os_ZygoteInit_createFileDescriptor (
- JNIEnv *env, jobject clazz, jint fd)
+ JNIEnv *env, jobject clazz, jint fd)
{
return jniCreateFileDescriptor(env, fd);
}
@@ -329,17 +328,17 @@ static JNINativeMethod gMethods[] = {
(void *) com_android_internal_os_ZygoteInit_setpgid },
{ "getpgid", "(I)I",
(void *) com_android_internal_os_ZygoteInit_getpgid },
- { "reopenStdio",
+ { "reopenStdio",
"(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;"
- "Ljava/io/FileDescriptor;)V",
+ "Ljava/io/FileDescriptor;)V",
(void *) com_android_internal_os_ZygoteInit_reopenStdio},
- { "closeDescriptor", "(Ljava/io/FileDescriptor;)V",
+ { "closeDescriptor", "(Ljava/io/FileDescriptor;)V",
(void *) com_android_internal_os_ZygoteInit_closeDescriptor},
- { "setCloseOnExec", "(Ljava/io/FileDescriptor;Z)V",
+ { "setCloseOnExec", "(Ljava/io/FileDescriptor;Z)V",
(void *) com_android_internal_os_ZygoteInit_setCloseOnExec},
- { "setCapabilities", "(JJ)V",
+ { "setCapabilities", "(JJ)V",
(void *) com_android_internal_os_ZygoteInit_setCapabilities },
- { "capgetPermitted", "(I)J",
+ { "capgetPermitted", "(I)J",
(void *) com_android_internal_os_ZygoteInit_capgetPermitted },
{ "selectReadable", "([Ljava/io/FileDescriptor;)I",
(void *) com_android_internal_os_ZygoteInit_selectReadable },
@@ -353,4 +352,3 @@ int register_com_android_internal_os_ZygoteInit(JNIEnv* env)
}
}; // namespace android
-