Rename isHandlingTransaction to isDirectlyHandlingTransaction
The change in aosp/1806594 is adding a method to the binder ndk called isHandlingTransaction, but that method behaves differently from this method when HIDL gets involved, as getCurrentServingCall returns HWBINDER in that case. Test: m Change-Id: Ie2812943d1e98e99a1c361475965a2c75214724a
This commit is contained in:
@@ -313,7 +313,7 @@ public class Binder implements IBinder {
|
||||
* @hide
|
||||
*/
|
||||
@CriticalNative
|
||||
public static final native boolean isHandlingTransaction();
|
||||
public static final native boolean isDirectlyHandlingTransaction();
|
||||
|
||||
/**
|
||||
* Return the Linux uid assigned to the process that sent the transaction
|
||||
@@ -323,7 +323,7 @@ public class Binder implements IBinder {
|
||||
* executing an incoming transaction.
|
||||
*/
|
||||
public static final int getCallingUidOrThrow() {
|
||||
if (!isHandlingTransaction()) {
|
||||
if (!isDirectlyHandlingTransaction()) {
|
||||
throw new IllegalStateException(
|
||||
"Thread is not in a binder transcation");
|
||||
}
|
||||
|
||||
@@ -959,8 +959,7 @@ static jint android_os_Binder_getCallingUid()
|
||||
return IPCThreadState::self()->getCallingUid();
|
||||
}
|
||||
|
||||
static jboolean android_os_Binder_isHandlingTransaction()
|
||||
{
|
||||
static jboolean android_os_Binder_isDirectlyHandlingTransaction() {
|
||||
return getCurrentServingCall() == BinderCallType::BINDER;
|
||||
}
|
||||
|
||||
@@ -1056,6 +1055,7 @@ static void android_os_Binder_setExtension(JNIEnv* env, jobject obj, jobject ext
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// clang-format off
|
||||
static const JNINativeMethod gBinderMethods[] = {
|
||||
/* name, signature, funcPtr */
|
||||
// @CriticalNative
|
||||
@@ -1063,7 +1063,7 @@ static const JNINativeMethod gBinderMethods[] = {
|
||||
// @CriticalNative
|
||||
{ "getCallingUid", "()I", (void*)android_os_Binder_getCallingUid },
|
||||
// @CriticalNative
|
||||
{ "isHandlingTransaction", "()Z", (void*)android_os_Binder_isHandlingTransaction },
|
||||
{ "isDirectlyHandlingTransaction", "()Z", (void*)android_os_Binder_isDirectlyHandlingTransaction },
|
||||
// @CriticalNative
|
||||
{ "clearCallingIdentity", "()J", (void*)android_os_Binder_clearCallingIdentity },
|
||||
// @CriticalNative
|
||||
@@ -1088,6 +1088,7 @@ static const JNINativeMethod gBinderMethods[] = {
|
||||
{ "getExtension", "()Landroid/os/IBinder;", (void*)android_os_Binder_getExtension },
|
||||
{ "setExtension", "(Landroid/os/IBinder;)V", (void*)android_os_Binder_setExtension },
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
const char* const kBinderPathName = "android/os/Binder";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user