aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-09-04 17:22:17 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-09-04 17:27:41 +0200
commit129737b262ce0ed3fa1ae113fcd916ec2b752b3a (patch)
tree27684b84b49521f8fb341d5e79857d136f88b154
parenta675c2661631479f6629a7c8751efab830b31b6f (diff)
downloadPROJ-129737b262ce0ed3fa1ae113fcd916ec2b752b3a.tar.gz
PROJ-129737b262ce0ed3fa1ae113fcd916ec2b752b3a.zip
GeodeticCRS::identify(): make it more obvious for cppcheck
-rw-r--r--src/iso19111/crs.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp
index a15758ab..7c8fcd81 100644
--- a/src/iso19111/crs.cpp
+++ b/src/iso19111/crs.cpp
@@ -2274,6 +2274,7 @@ GeodeticCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const {
auto searchByDatumCode =
[this, &authorityFactory, &res, &geodetic_crs_type, crsCriterion,
&dbContext](const common::IdentifiedObjectNNPtr &l_datum) {
+ bool resModified = false;
for (const auto &id : l_datum->identifiers()) {
try {
auto tempRes =
@@ -2284,11 +2285,13 @@ GeodeticCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const {
if (_isEquivalentTo(crs.get(), crsCriterion,
dbContext)) {
res.emplace_back(crs, 70);
+ resModified = true;
}
}
} catch (const std::exception &) {
}
}
+ return resModified;
};
auto searchByEllipsoid = [this, &authorityFactory, &res, &thisDatum,
@@ -2331,8 +2334,8 @@ GeodeticCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const {
}
};
- const auto searchByDatumOrEllipsoid = [&authorityFactory, &res,
- &thisDatum, searchByDatumCode,
+ const auto searchByDatumOrEllipsoid = [&authorityFactory, &thisDatum,
+ searchByDatumCode,
searchByEllipsoid]() {
if (!thisDatum->identifiers().empty()) {
searchByDatumCode(thisDatum);
@@ -2342,11 +2345,12 @@ GeodeticCRS::identify(const io::AuthorityFactoryPtr &authorityFactory) const {
{io::AuthorityFactory::ObjectType::
GEODETIC_REFERENCE_FRAME},
false);
- const size_t sizeBefore = res.size();
+ bool resModified = false;
for (const auto &candidateDatum : candidateDatums) {
- searchByDatumCode(candidateDatum);
+ if (searchByDatumCode(candidateDatum))
+ resModified = true;
}
- if (sizeBefore == res.size()) {
+ if (!resModified) {
searchByEllipsoid();
}
}