ManifestHal: fix operator==
operator== doesn't compare some fields.
Test: libvintf_test
Test: vintf_object_test
Bug: 73556059
Change-Id: Ic0da5ac3d7ed5068fc6af9cada1a9baa58fd41a2
diff --git a/ManifestHal.cpp b/ManifestHal.cpp
index aa9d358..7d687fc 100644
--- a/ManifestHal.cpp
+++ b/ManifestHal.cpp
@@ -40,7 +40,9 @@
return false;
if (versions != other.versions)
return false;
- // do not compare impl
+ if (!(transportArch == other.transportArch)) return false;
+ if (interfaces != other.interfaces) return false;
+ if (isOverride() != other.isOverride()) return false;
return true;
}
diff --git a/include/vintf/TransportArch.h b/include/vintf/TransportArch.h
index f09b6f0..1bd6604 100644
--- a/include/vintf/TransportArch.h
+++ b/include/vintf/TransportArch.h
@@ -28,7 +28,11 @@
Transport transport = Transport::EMPTY;
Arch arch = Arch::ARCH_EMPTY;
-private:
+ inline bool operator==(const TransportArch& other) const {
+ return transport == other.transport && arch == other.arch;
+ }
+
+ private:
friend struct TransportArchConverter;
friend struct ManifestHalConverter;
friend struct ManifestHal;