From 66fa084686eb344fc960ea6e4008ed1419afe5ce Mon Sep 17 00:00:00 2001 From: Peter Melnichenko Date: Tue, 10 May 2016 19:02:55 +0300 Subject: Refactor check_outdated() to avoid loops with unconditional breaks --- src/luarocks/list.lua | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/luarocks/list.lua b/src/luarocks/list.lua index b517d182..8affc52f 100644 --- a/src/luarocks/list.lua +++ b/src/luarocks/list.lua @@ -29,27 +29,19 @@ local function check_outdated(trees, query) end local outdated = {} for name, versions in util.sortedpairs(results_installed) do - local latest_installed - local latest_available, latest_available_repo - - for version, _ in util.sortedpairs(versions, deps.compare_versions) do - latest_installed = version - break - end + versions = util.keys(versions) + table.sort(versions, deps.compare_versions) + local latest_installed = versions[1] local query_available = search.make_query(name:lower()) query.exact_name = true local results_available, err = search.search_repos(query_available) if results_available[name] then - for version, repos in util.sortedpairs(results_available[name], deps.compare_versions) do - latest_available = version - for _, repo in ipairs(repos) do - latest_available_repo = repo.repo - break - end - break - end + local available_versions = util.keys(results_available[name]) + table.sort(available_versions, deps.compare_versions) + local latest_available = available_versions[1] + local latest_available_repo = results_available[name][latest_available][1].repo if deps.compare_versions(latest_available, latest_installed) then table.insert(outdated, { name = name, installed = latest_installed, available = latest_available, repo = latest_available_repo }) -- cgit v1.2.3-55-g6feb