Vintf.cpp null checks for manifests.
am: 11d34e2141

Change-Id: I507e432bb730eca1d9e3550b921b80aa82bb099c
diff --git a/Vintf.cpp b/Vintf.cpp
index fca4775..164eb42 100644
--- a/Vintf.cpp
+++ b/Vintf.cpp
@@ -71,6 +71,21 @@
     return vintf::Transport::EMPTY;
 }
 
+static void insertManifestInstances(const FQName& fqName,
+                                    const std::shared_ptr<const vintf::HalManifest>& manifest,
+                                    const std::string& manifestType,
+                                    std::set<std::string>* toSet) {
+    if (manifest == nullptr) {
+        LOG(ERROR) << "Device is missing " << manifestType << " manifest.";
+        return;
+    }
+
+    std::set<std::string> manifestSet = manifest->getHidlInstances(
+        fqName.package(), fqName.getVersion(), fqName.name());
+
+    toSet->insert(manifestSet.begin(), manifestSet.end());
+}
+
 std::set<std::string> getInstances(const std::string& interfaceName) {
     FQName fqName;
     if (!FQName::parse(interfaceName, &fqName) || !fqName.isFullyQualified() ||
@@ -82,16 +97,10 @@
 
     std::set<std::string> ret;
 
-    auto deviceManifest = vintf::VintfObject::GetDeviceHalManifest();
-    auto frameworkManifest = vintf::VintfObject::GetFrameworkHalManifest();
-
-    std::set<std::string> deviceSet = deviceManifest->getHidlInstances(
-        fqName.package(), fqName.getVersion(), fqName.name());
-    std::set<std::string> frameworkSet = frameworkManifest->getHidlInstances(
-        fqName.package(), fqName.getVersion(), fqName.name());
-
-    ret.insert(deviceSet.begin(), deviceSet.end());
-    ret.insert(frameworkSet.begin(), frameworkSet.end());
+    insertManifestInstances(
+        fqName, vintf::VintfObject::GetDeviceHalManifest(), "device", &ret);
+    insertManifestInstances(
+        fqName, vintf::VintfObject::GetFrameworkHalManifest(), "framework", &ret);
 
     return ret;
 }