From 65ad35bfabf9bf413ed1137da737805d18682ba1 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 26 May 2018 21:09:56 +0200 Subject: [PATCH] Fixed div. by 0 ("zero") warning --- src/blackmisc/geo/geoobjectlist.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/blackmisc/geo/geoobjectlist.cpp b/src/blackmisc/geo/geoobjectlist.cpp index 3321e7910..01060f2e7 100644 --- a/src/blackmisc/geo/geoobjectlist.cpp +++ b/src/blackmisc/geo/geoobjectlist.cpp @@ -100,7 +100,8 @@ namespace BlackMisc typename IGeoObjectList::MinMaxAverageHeight IGeoObjectList::findMinMaxAverageHeight() const { MinMaxAverageHeight stats{ CAltitude::null(), CAltitude::null(), CAltitude::null(), 0 }; - int c = 0; + if (this->container().isEmpty()) { return stats; } // avoid div by zero + int count = 0; double avgFt = 0; for (const OBJ &obj : this->container()) { @@ -108,17 +109,18 @@ namespace BlackMisc const CAltitude alt = obj.geodeticHeight(); if (std::get<0>(stats).isNull() || std::get<0>(stats) > alt) { - std::get<0>(stats) = alt; + std::get<0>(stats) = alt; // min. } if (std::get<1>(stats).isNull() || std::get<1>(stats) < alt) { - std::get<1>(stats) = alt; + std::get<1>(stats) = alt; //max. } - avgFt += alt.value(CLengthUnit::ft()); + avgFt += alt.value(CLengthUnit::ft()); // add up + count++; } - std::get<2>(stats) = CAltitude(avgFt / c, CAltitude::MeanSeaLevel, CLengthUnit::ft()); - std::get<3>(stats) = c; + if (count > 0) { std::get<2>(stats) = CAltitude(avgFt / count, CAltitude::MeanSeaLevel, CLengthUnit::ft()); } + std::get<3>(stats) = count; return stats; }