aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/crs.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-09-05 15:41:40 +0200
committerGitHub <noreply@github.com>2021-09-05 15:41:40 +0200
commit71b372e6f08b2f40fbd043c80b56bdb8d2c0b5a0 (patch)
treeeaae225629ae6101db6094b046f319df4f6aba7a /src/iso19111/crs.cpp
parent09367628bfe698d6a73a1b928bcf611ea675103d (diff)
parentb91af0075a7e8a189e2cd443a823a0798e0b9ed9 (diff)
downloadPROJ-71b372e6f08b2f40fbd043c80b56bdb8d2c0b5a0.tar.gz
PROJ-71b372e6f08b2f40fbd043c80b56bdb8d2c0b5a0.zip
Merge pull request #2841 from rouault/cppcheck_fixes
Cppcheck fixes
Diffstat (limited to 'src/iso19111/crs.cpp')
-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();
}
}