summaryrefslogtreecommitdiffstats
path: root/core/jni/android_util_Binder.cpp
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-10-03 21:09:35 -0700
committerDianne Hackborn <hackbod@google.com>2011-10-03 21:09:35 -0700
commitc04db7e06737c5b9bae276ac462858d44002672e (patch)
treebc987fad458ca9609339478f4aac28971646d760 /core/jni/android_util_Binder.cpp
parent2588a07730ff511329c87b5f61b20419b2443d48 (diff)
downloadframeworks_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/android_util_Binder.cpp')
-rw-r--r--core/jni/android_util_Binder.cpp15
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},