From e86f70b474a9007b07fe22d0731d2789a2dc2cc4 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Mon, 19 Jun 2017 15:47:39 -0700 Subject: [PATCH] Fix minor version bump reflected in lshal --init-vintf Test: lshal --init-vintf has no warnings, and power@1.1 / vibrator@1.1 is shown in output. Bug: 62675393 Change-Id: I1ffd8b6dc7fcadcf7228cf2b8838e918bb3afe6b Merged-In: I1ffd8b6dc7fcadcf7228cf2b8838e918bb3afe6b --- cmds/lshal/ListCommand.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cmds/lshal/ListCommand.cpp b/cmds/lshal/ListCommand.cpp index 1cdd20266f..7c6cfd94ab 100644 --- a/cmds/lshal/ListCommand.cpp +++ b/cmds/lshal/ListCommand.cpp @@ -244,6 +244,16 @@ void ListCommand::printLine( mOut << std::endl; } +static inline bool findAndBumpVersion(vintf::ManifestHal* hal, const vintf::Version& version) { + for (vintf::Version& v : hal->versions) { + if (v.majorVer == version.majorVer) { + v.minorVer = std::max(v.minorVer, version.minorVer); + return true; + } + } + return false; +} + void ListCommand::dumpVintf() const { using vintf::operator|=; mOut << "" << std::endl; @@ -324,7 +336,7 @@ void ListCommand::dumpVintf() const { done = true; break; } - if (hal->hasVersion(version)) { + if (findAndBumpVersion(hal, version)) { if (&table != &mImplementationsTable) { hal->interfaces[interfaceName].name = interfaceName; hal->interfaces[interfaceName].instances.insert(instanceName); -- 2.11.0