diff options
| author | 2017-03-09 08:48:59 +0000 | |
|---|---|---|
| committer | 2017-03-09 08:48:59 +0000 | |
| commit | c16b8a3b4c149f74ff5cda98cf2188906f984fe7 (patch) | |
| tree | 75c29288c3a9742ca6a875f18ded10fd0c9bb1bd | |
| parent | 16539f33785b59fa809295ec7def782983664489 (diff) | |
| parent | 7669e41d8a7b7116267c4bf8a208373a8e3a0784 (diff) | |
Merge "Remove interfaceChain from IServiceManager::add()" am: 4a75e32f1d am: 7665332a7a
am: 7669e41d8a
Change-Id: Ide4a33b8532954659a9c7c997d8d5203279a270e
| -rw-r--r-- | core/java/android/os/HwBinder.java | 4 | ||||
| -rw-r--r-- | core/jni/android_os_HwBinder.cpp | 34 |
2 files changed, 3 insertions, 35 deletions
diff --git a/core/java/android/os/HwBinder.java b/core/java/android/os/HwBinder.java index e02549426cb5..b09c51c50d26 100644 --- a/core/java/android/os/HwBinder.java +++ b/core/java/android/os/HwBinder.java @@ -43,9 +43,7 @@ public abstract class HwBinder implements IHwBinder { int code, HwParcel request, HwParcel reply, int flags) throws RemoteException; - public native final void registerService( - ArrayList<String> interfaceChain, - String serviceName) + public native final void registerService(String serviceName) throws RemoteException; public static native final IHwBinder getService( diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index 2439b8210a89..15b2f357b33f 100644 --- a/core/jni/android_os_HwBinder.cpp +++ b/core/jni/android_os_HwBinder.cpp @@ -49,12 +49,6 @@ using Return = android::hardware::Return<T>; namespace android { -static jclass gArrayListClass; -static struct { - jmethodID size; - jmethodID get; -} gArrayListMethods; - static jclass gErrorClass; static struct fields_t { @@ -239,7 +233,6 @@ static void JHwBinder_native_transact( static void JHwBinder_native_registerService( JNIEnv *env, jobject thiz, - jobject interfaceChainArrayList, jstring serviceNameObj) { if (serviceNameObj == NULL) { jniThrowException(env, "java/lang/NullPointerException", NULL); @@ -251,24 +244,6 @@ static void JHwBinder_native_registerService( return; // XXX exception already pending? } - jint numInterfaces = env->CallIntMethod(interfaceChainArrayList, - gArrayListMethods.size); - hidl_string *strings = new hidl_string[numInterfaces]; - - for (jint i = 0; i < numInterfaces; i++) { - jstring strObj = static_cast<jstring>( - env->CallObjectMethod(interfaceChainArrayList, - gArrayListMethods.get, - i) - ); - const char * str = env->GetStringUTFChars(strObj, nullptr); - strings[i] = hidl_string(str); - env->ReleaseStringUTFChars(strObj, str); - } - - hidl_vec<hidl_string> interfaceChain; - interfaceChain.setToExternal(strings, numInterfaces, true /* shouldOwn */); - sp<hardware::IBinder> binder = JHwBinder::GetNativeContext(env, thiz); /* TODO(b/33440494) this is not right */ @@ -282,7 +257,7 @@ static void JHwBinder_native_registerService( return; } - Return<bool> ret = manager->add(interfaceChain, serviceName, base); + Return<bool> ret = manager->add(serviceName, base); env->ReleaseStringUTFChars(serviceNameObj, serviceName); serviceName = NULL; @@ -385,7 +360,7 @@ static JNINativeMethod gMethods[] = { "(IL" PACKAGE_PATH "/HwParcel;L" PACKAGE_PATH "/HwParcel;I)V", (void *)JHwBinder_native_transact }, - { "registerService", "(Ljava/util/ArrayList;Ljava/lang/String;)V", + { "registerService", "(Ljava/lang/String;)V", (void *)JHwBinder_native_registerService }, { "getService", "(Ljava/lang/String;Ljava/lang/String;)L" PACKAGE_PATH "/IHwBinder;", @@ -395,11 +370,6 @@ static JNINativeMethod gMethods[] = { namespace android { int register_android_os_HwBinder(JNIEnv *env) { - jclass arrayListClass = FindClassOrDie(env, "java/util/ArrayList"); - gArrayListClass = MakeGlobalRefOrDie(env, arrayListClass); - gArrayListMethods.size = GetMethodIDOrDie(env, arrayListClass, "size", "()I"); - gArrayListMethods.get = GetMethodIDOrDie(env, arrayListClass, "get", "(I)Ljava/lang/Object;"); - jclass errorClass = FindClassOrDie(env, "java/lang/Error"); gErrorClass = MakeGlobalRefOrDie(env, errorClass); |