Fix lshal --init-vintf may have empty <instance> tags.
Test: on bullhead, lshal --init-vintf | grep "<instance></instance>"
Change-Id: Ic6ab977adcdc5293015e9daba506b625629e5352
Fixes: 37311367
diff --git a/cmds/lshal/Lshal.cpp b/cmds/lshal/Lshal.cpp
index d6caf5f..2fc3715 100644
--- a/cmds/lshal/Lshal.cpp
+++ b/cmds/lshal/Lshal.cpp
@@ -322,8 +322,10 @@
break;
}
if (hal->hasVersion(version)) {
- hal->interfaces[interfaceName].name = interfaceName;
- hal->interfaces[interfaceName].instances.insert(instanceName);
+ if (&table != &mImplementationsTable) {
+ hal->interfaces[interfaceName].name = interfaceName;
+ hal->interfaces[interfaceName].instances.insert(instanceName);
+ }
done = true;
break;
}
@@ -331,12 +333,17 @@
if (done) {
continue; // to next TableEntry
}
+ decltype(vintf::ManifestHal::interfaces) interfaces;
+ if (&table != &mImplementationsTable) {
+ interfaces[interfaceName].name = interfaceName;
+ interfaces[interfaceName].instances.insert(instanceName);
+ }
if (!manifest.add(vintf::ManifestHal{
.format = vintf::HalFormat::HIDL,
.name = fqName.package(),
.versions = {version},
.transportArch = {transport, arch},
- .interfaces = {{interfaceName, {interfaceName, {{instanceName}}}}}})) {
+ .interfaces = interfaces})) {
mErr << "Warning: cannot add hal '" << fqInstanceName << "'" << std::endl;
}
}