diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2022-02-22 20:51:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-22 20:51:05 +0100 |
| commit | 5b7c4575e549d2765da39a9708a42fa6317926f1 (patch) | |
| tree | 32ea9e79e558f0576170cc6fa85e693739b1e7ec /src/iso19111/crs.cpp | |
| parent | dd96597e86a0d4df1c6af0e32e1bb6bee1f840dd (diff) | |
| parent | 27d6a335dba16a083f5ecf76e8ce8d6034bb130f (diff) | |
| download | PROJ-5b7c4575e549d2765da39a9708a42fa6317926f1.tar.gz PROJ-5b7c4575e549d2765da39a9708a42fa6317926f1.zip | |
Merge pull request #3072 from rouault/coverity_scan
Fix various issues found by Coverity scan
Diffstat (limited to 'src/iso19111/crs.cpp')
| -rw-r--r-- | src/iso19111/crs.cpp | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index 4750896a..881aec0b 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -4059,50 +4059,50 @@ void ProjectedCRS::_exportToWKT(io::WKTFormatter *formatter) const { if (found) l_esri_name = l_name; } - } - if (!isWKT2 && formatter->useESRIDialect() && !l_identifiers.empty() && - *(l_identifiers[0]->codeSpace()) == "ESRI" && dbContext) { - try { - const auto definition = dbContext->getTextDefinition( - "projected_crs", "ESRI", l_identifiers[0]->code()); - if (starts_with(definition, "PROJCS")) { - auto crsFromFromDef = io::WKTParser() - .attachDatabaseContext(dbContext) - .createFromWKT(definition); - if (_isEquivalentTo( - dynamic_cast<IComparable *>(crsFromFromDef.get()), - util::IComparable::Criterion::EQUIVALENT)) { - formatter->ingestWKTNode( - io::WKTNode::createFrom(definition)); - return; - } - } - } catch (const std::exception &) { - } - } else if (!isWKT2 && formatter->useESRIDialect() && !l_esri_name.empty()) { - try { - auto res = - io::AuthorityFactory::create(NN_NO_CHECK(dbContext), "ESRI") - ->createObjectsFromName( - l_esri_name, - {io::AuthorityFactory::ObjectType::PROJECTED_CRS}, - false); - if (res.size() == 1) { + if (!isWKT2 && !l_identifiers.empty() && + *(l_identifiers[0]->codeSpace()) == "ESRI") { + try { const auto definition = dbContext->getTextDefinition( - "projected_crs", "ESRI", - res.front()->identifiers()[0]->code()); + "projected_crs", "ESRI", l_identifiers[0]->code()); if (starts_with(definition, "PROJCS")) { + auto crsFromFromDef = io::WKTParser() + .attachDatabaseContext(dbContext) + .createFromWKT(definition); if (_isEquivalentTo( - dynamic_cast<IComparable *>(res.front().get()), + dynamic_cast<IComparable *>(crsFromFromDef.get()), util::IComparable::Criterion::EQUIVALENT)) { formatter->ingestWKTNode( io::WKTNode::createFrom(definition)); return; } } + } catch (const std::exception &) { + } + } else if (!isWKT2 && !l_esri_name.empty()) { + try { + auto res = + io::AuthorityFactory::create(NN_NO_CHECK(dbContext), "ESRI") + ->createObjectsFromName( + l_esri_name, + {io::AuthorityFactory::ObjectType::PROJECTED_CRS}, + false); + if (res.size() == 1) { + const auto definition = dbContext->getTextDefinition( + "projected_crs", "ESRI", + res.front()->identifiers()[0]->code()); + if (starts_with(definition, "PROJCS")) { + if (_isEquivalentTo( + dynamic_cast<IComparable *>(res.front().get()), + util::IComparable::Criterion::EQUIVALENT)) { + formatter->ingestWKTNode( + io::WKTNode::createFrom(definition)); + return; + } + } + } + } catch (const std::exception &) { } - } catch (const std::exception &) { } } |
