Merge "Remove interfaceChain from IServiceManager::add()" am: 4a75e32f1d am: 7665332a7a

am: 7669e41d8a

Change-Id: Ide4a33b8532954659a9c7c997d8d5203279a270e
This commit is contained in:
Martijn Coenen
2017-03-09 08:48:59 +00:00
committed by android-build-merger
2 changed files with 3 additions and 35 deletions

View File

@@ -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(

View File

@@ -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);