diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-10-03 21:09:35 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2011-10-03 21:09:35 -0700 |
commit | c04db7e06737c5b9bae276ac462858d44002672e (patch) | |
tree | bc987fad458ca9609339478f4aac28971646d760 /core/jni | |
parent | 2588a07730ff511329c87b5f61b20419b2443d48 (diff) | |
download | frameworks_base-c04db7e06737c5b9bae276ac462858d44002672e.zip frameworks_base-c04db7e06737c5b9bae276ac462858d44002672e.tar.gz frameworks_base-c04db7e06737c5b9bae276ac462858d44002672e.tar.bz2 |
Fix handling of "allow fds" state.
Didn't take into account nesting of bundles. Boo.
Change-Id: Ic8cf21ad8d6f4938a3e105128624c9d162310d01
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_util_Binder.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp index efdaad6..1718e74 100644 --- a/core/jni/android_util_Binder.cpp +++ b/core/jni/android_util_Binder.cpp @@ -1303,16 +1303,24 @@ static void android_os_Parcel_setDataCapacity(JNIEnv* env, jobject clazz, jint s } } -static jboolean android_os_Parcel_setAllowFds(JNIEnv* env, jobject clazz, jboolean allowFds) +static jboolean android_os_Parcel_pushAllowFds(JNIEnv* env, jobject clazz, jboolean allowFds) { Parcel* parcel = parcelForJavaObject(env, clazz); jboolean ret = JNI_TRUE; if (parcel != NULL) { - ret = (jboolean)parcel->setAllowFds((bool)allowFds); + ret = (jboolean)parcel->pushAllowFds(allowFds); } return ret; } +static void android_os_Parcel_restoreAllowFds(JNIEnv* env, jobject clazz, jboolean lastValue) +{ + Parcel* parcel = parcelForJavaObject(env, clazz); + if (parcel != NULL) { + parcel->restoreAllowFds((bool)lastValue); + } +} + static void android_os_Parcel_writeNative(JNIEnv* env, jobject clazz, jobject data, jint offset, jint length) @@ -1810,7 +1818,8 @@ static const JNINativeMethod gParcelMethods[] = { {"setDataSize", "(I)V", (void*)android_os_Parcel_setDataSize}, {"setDataPosition", "(I)V", (void*)android_os_Parcel_setDataPosition}, {"setDataCapacity", "(I)V", (void*)android_os_Parcel_setDataCapacity}, - {"setAllowFds", "(Z)Z", (void*)android_os_Parcel_setAllowFds}, + {"pushAllowFds", "(Z)Z", (void*)android_os_Parcel_pushAllowFds}, + {"restoreAllowFds", "(Z)V", (void*)android_os_Parcel_restoreAllowFds}, {"writeNative", "([BII)V", (void*)android_os_Parcel_writeNative}, {"writeInt", "(I)V", (void*)android_os_Parcel_writeInt}, {"writeLong", "(J)V", (void*)android_os_Parcel_writeLong}, |