diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-09-04 17:22:17 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2021-09-04 17:27:41 +0200 |
| commit | 129737b262ce0ed3fa1ae113fcd916ec2b752b3a (patch) | |
| tree | 27684b84b49521f8fb341d5e79857d136f88b154 | |
| parent | a675c2661631479f6629a7c8751efab830b31b6f (diff) | |
| download | PROJ-129737b262ce0ed3fa1ae113fcd916ec2b752b3a.tar.gz PROJ-129737b262ce0ed3fa1ae113fcd916ec2b752b3a.zip | |
GeodeticCRS::identify(): make it more obvious for cppcheck
| -rw-r--r-- | src/iso19111/crs.cpp | 14 |
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(); } } |
