Fix registration reference of passthrough services
Test: on internal marlin with lshal
Change-Id: I1ce337ed5c7fe711ad499d687567919f6fd89788
diff --git a/transport/ServiceManagement.cpp b/transport/ServiceManagement.cpp
index 958b9bd..f3e1818 100644
--- a/transport/ServiceManagement.cpp
+++ b/transport/ServiceManagement.cpp
@@ -175,9 +175,13 @@
return nullptr;
}
- registerReference(fqName, name);
+ IBase *interface = (*generator)(name);
- return (*generator)(name);
+ if (interface != nullptr) {
+ registerReference(fqName, name);
+ }
+
+ return interface;
}
Return<bool> add(const hidl_vec<hidl_string>& /* interfaceChain */,