Merge "Cleanup hwbinder getService code." am: 9be24a3040
am: 4ede371d80
Change-Id: Ia0f3f88d8881f89cec6939dbb44d7dbbb8da9a7f
This commit is contained in:
@@ -302,6 +302,14 @@ static jobject JHwBinder_native_getService(
|
||||
return NULL;
|
||||
}
|
||||
|
||||
auto manager = hardware::defaultServiceManager();
|
||||
|
||||
if (manager == nullptr) {
|
||||
LOG(ERROR) << "Could not get hwservicemanager.";
|
||||
signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *ifaceName = env->GetStringUTFChars(ifaceNameObj, NULL);
|
||||
if (ifaceName == NULL) {
|
||||
return NULL; // XXX exception already pending?
|
||||
@@ -312,32 +320,26 @@ static jobject JHwBinder_native_getService(
|
||||
return NULL; // XXX exception already pending?
|
||||
}
|
||||
|
||||
LOG(INFO) << "looking for service '"
|
||||
<< serviceName
|
||||
<< "'";
|
||||
|
||||
auto manager = hardware::defaultServiceManager();
|
||||
|
||||
if (manager == nullptr) {
|
||||
LOG(ERROR) << "Could not get hwservicemanager.";
|
||||
signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */);
|
||||
return NULL;
|
||||
}
|
||||
LOG(INFO) << "Looking for service "
|
||||
<< ifaceName
|
||||
<< "/"
|
||||
<< serviceName;
|
||||
|
||||
Return<sp<hidl::base::V1_0::IBase>> ret = manager->get(ifaceName, serviceName);
|
||||
|
||||
if (!ret.isOk()) {
|
||||
signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */);
|
||||
}
|
||||
|
||||
sp<hardware::IBinder> service = hardware::toBinder<
|
||||
hidl::base::V1_0::IBase, hidl::base::V1_0::BpHwBase>(ret);
|
||||
|
||||
env->ReleaseStringUTFChars(ifaceNameObj, ifaceName);
|
||||
ifaceName = NULL;
|
||||
env->ReleaseStringUTFChars(serviceNameObj, serviceName);
|
||||
serviceName = NULL;
|
||||
|
||||
if (!ret.isOk()) {
|
||||
signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
sp<hardware::IBinder> service = hardware::toBinder<
|
||||
hidl::base::V1_0::IBase, hidl::base::V1_0::BpHwBase>(ret);
|
||||
|
||||
if (service == NULL) {
|
||||
signalExceptionForError(env, NAME_NOT_FOUND);
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user