HalManifests can be merged.
assemble_vintf and VintfObject can now merge manifests
correctly (previously, only <hal>'s are merged).
Test: libvintf_test
Test: vintf_object_test
Fixes: 78943004
Change-Id: I5e2987e9c97e0b60e976fe4e0bb8833edf043a53
diff --git a/VintfObject.cpp b/VintfObject.cpp
index fbe4045..e66bcbe 100644
--- a/VintfObject.cpp
+++ b/VintfObject.cpp
@@ -215,7 +215,12 @@
err = fetchOneHalManifest(directory + file, &fragmentManifest, error);
if (err != OK) return err;
- manifest->addAllHals(&fragmentManifest);
+ if (!manifest->addAll(&fragmentManifest, error)) {
+ if (error) {
+ error->insert(0, "Cannot add manifest fragment " + directory + file + ":");
+ }
+ return UNKNOWN_ERROR;
+ }
}
return OK;
@@ -250,7 +255,12 @@
if (vendorStatus == OK) {
if (odmStatus == OK) {
- out->addAllHals(&odmManifest);
+ if (!out->addAll(&odmManifest, error)) {
+ if (error) {
+ error->insert(0, "Cannot add ODM manifest :");
+ }
+ return UNKNOWN_ERROR;
+ }
}
return addDirectoryManifests(kOdmManifestFragmentDir, out, error);
}