canCastInterface: always return true for IBase
Don't do a binder call for passing interface
around, especially since every HIDL thing is
already IBase.
Bug: 68217907
Test: hidl's run_all_device_tests, boot + camera/YT sanity
Merged-In: Ic195e9c19f181828296c515a3004c75daccdd03f
Change-Id: Ic195e9c19f181828296c515a3004c75daccdd03f
(cherry picked from commit 3fa8e305eb60aeba52b721c875618d0e168dddce)
diff --git a/transport/include/hidl/HidlTransportUtils.h b/transport/include/hidl/HidlTransportUtils.h
index fbd6516..a69c123 100644
--- a/transport/include/hidl/HidlTransportUtils.h
+++ b/transport/include/hidl/HidlTransportUtils.h
@@ -34,6 +34,12 @@
return false;
}
+ // b/68217907
+ // Every HIDL interface is a base interface.
+ if (std::string(::android::hidl::base::V1_0::IBase::descriptor) == castTo) {
+ return true;
+ }
+
bool canCast = false;
auto chainRet = interface->interfaceChain([&](const hidl_vec<hidl_string> &types) {
for (size_t i = 0; i < types.size(); i++) {