From fdc5bd6195ada5ae0ace85a67fddf8d4dbeb8e46 Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Wed, 30 Jul 2014 11:28:36 +0200 Subject: [PATCH] add try catch, fixes coverity issues 1229132 and 1229133 --- Tools/check-hsgr.cpp | 99 ++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 46 deletions(-) diff --git a/Tools/check-hsgr.cpp b/Tools/check-hsgr.cpp index 75e5782b6..c1a50f8f6 100644 --- a/Tools/check-hsgr.cpp +++ b/Tools/check-hsgr.cpp @@ -49,57 +49,64 @@ int main(int argc, char *argv[]) return 1; } - boost::filesystem::path hsgr_path(argv[1]); - - std::vector node_list; - std::vector edge_list; - - SimpleLogger().Write() << "loading graph from " << hsgr_path.string(); - - unsigned m_check_sum = 0; - unsigned m_number_of_nodes = readHSGRFromStream(hsgr_path, node_list, edge_list, &m_check_sum); - SimpleLogger().Write() << "announced " << m_number_of_nodes - << " nodes, checksum: " << m_check_sum; - BOOST_ASSERT_MSG(0 != node_list.size(), "node list empty"); - // BOOST_ASSERT_MSG(0 != edge_list.size(), "edge list empty"); - SimpleLogger().Write() << "loaded " << node_list.size() << " nodes and " << edge_list.size() - << " edges"; - std::shared_ptr m_query_graph = std::make_shared(node_list, edge_list); - - BOOST_ASSERT_MSG(0 == node_list.size(), "node list not flushed"); - BOOST_ASSERT_MSG(0 == edge_list.size(), "edge list not flushed"); - - Percent p(m_query_graph->GetNumberOfNodes()); - for (const auto u : boost::irange(0u, m_query_graph->GetNumberOfNodes())) + try { - for (const auto eid : m_query_graph->GetAdjacentEdgeRange(u)) + boost::filesystem::path hsgr_path(argv[1]); + + std::vector node_list; + std::vector edge_list; + + SimpleLogger().Write() << "loading graph from " << hsgr_path.string(); + + unsigned m_check_sum = 0; + unsigned m_number_of_nodes = readHSGRFromStream(hsgr_path, node_list, edge_list, &m_check_sum); + SimpleLogger().Write() << "announced " << m_number_of_nodes + << " nodes, checksum: " << m_check_sum; + BOOST_ASSERT_MSG(0 != node_list.size(), "node list empty"); + // BOOST_ASSERT_MSG(0 != edge_list.size(), "edge list empty"); + SimpleLogger().Write() << "loaded " << node_list.size() << " nodes and " << edge_list.size() + << " edges"; + std::shared_ptr m_query_graph = std::make_shared(node_list, edge_list); + + BOOST_ASSERT_MSG(0 == node_list.size(), "node list not flushed"); + BOOST_ASSERT_MSG(0 == edge_list.size(), "edge list not flushed"); + + Percent p(m_query_graph->GetNumberOfNodes()); + for (const auto u : boost::irange(0u, m_query_graph->GetNumberOfNodes())) { - const EdgeData &data = m_query_graph->GetEdgeData(eid); - if (!data.shortcut) + for (const auto eid : m_query_graph->GetAdjacentEdgeRange(u)) { - continue; - } - const unsigned v = m_query_graph->GetTarget(eid); - const EdgeID first_edge_id = m_query_graph->FindEdgeInEitherDirection(u, data.id); - if (SPECIAL_EDGEID == first_edge_id) - { - SimpleLogger().Write(logWARNING) << "cannot find first segment of edge (" << u - << "," << data.id << "," << v << "), eid: " << eid; - BOOST_ASSERT(false); - return 1; - } - const EdgeID second_edge_id = m_query_graph->FindEdgeInEitherDirection(data.id, v); - if (SPECIAL_EDGEID == second_edge_id) - { - SimpleLogger().Write(logWARNING) << "cannot find second segment of edge (" << u - << "," << data.id << "," << v << "), eid: " << eid; - BOOST_ASSERT(false); - return 1; + const EdgeData &data = m_query_graph->GetEdgeData(eid); + if (!data.shortcut) + { + continue; + } + const unsigned v = m_query_graph->GetTarget(eid); + const EdgeID first_edge_id = m_query_graph->FindEdgeInEitherDirection(u, data.id); + if (SPECIAL_EDGEID == first_edge_id) + { + SimpleLogger().Write(logWARNING) << "cannot find first segment of edge (" << u + << "," << data.id << "," << v << "), eid: " << eid; + BOOST_ASSERT(false); + return 1; + } + const EdgeID second_edge_id = m_query_graph->FindEdgeInEitherDirection(data.id, v); + if (SPECIAL_EDGEID == second_edge_id) + { + SimpleLogger().Write(logWARNING) << "cannot find second segment of edge (" << u + << "," << data.id << "," << v << "), eid: " << eid; + BOOST_ASSERT(false); + return 1; + } } + p.printIncrement(); } - p.printIncrement(); + m_query_graph.reset(); + SimpleLogger().Write() << "Data file " << argv[0] << " appears to be OK"; + } + catch (const std::exception &e) + { + SimpleLogger().Write(logWARNING) << "[exception] " << e.what(); } - m_query_graph.reset(); - SimpleLogger().Write() << "Data file " << argv[0] << " appears to be OK"; return 0; }