diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2014-08-27 18:31:04 -0400 |
---|---|---|
committer | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2014-09-15 15:37:28 -0400 |
commit | 13617e4a80f2d1be45f2b6f237e0f13b1d1c68a0 (patch) | |
tree | 20cf5601dfc7399ddfd46dd9c8a215257563e9ba /src/mongo/db/index/expression_keys_private.cpp | |
parent | 8ffb9fae4fc1dbc6519bf4b04ac9316616c2efdf (diff) | |
download | mongo-13617e4a80f2d1be45f2b6f237e0f13b1d1c68a0.tar.gz |
SERVER-14508 Rewrite geo parsing using Status
Diffstat (limited to 'src/mongo/db/index/expression_keys_private.cpp')
-rw-r--r-- | src/mongo/db/index/expression_keys_private.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mongo/db/index/expression_keys_private.cpp b/src/mongo/db/index/expression_keys_private.cpp index b5e14d9ce30..8c41bc21c4f 100644 --- a/src/mongo/db/index/expression_keys_private.cpp +++ b/src/mongo/db/index/expression_keys_private.cpp @@ -83,14 +83,14 @@ namespace { } - bool S2GetKeysForObject(const BSONObj& obj, + bool S2GetKeysForObject(const BSONElement& element, const S2IndexingParams& params, vector<string>* out) { S2RegionCoverer coverer; params.configureCoverer(&coverer); GeometryContainer geoContainer; - if (!geoContainer.parseFrom(obj)) { return false; } + if (!geoContainer.parseFromStorage(element).isOK()) { return false; } // Don't index big polygon if (geoContainer.getNativeCRS() == STRICT_SPHERE) { @@ -125,10 +125,9 @@ namespace { for (BSONElementSet::iterator i = elements.begin(); i != elements.end(); ++i) { uassert(16754, "Can't parse geometry from element: " + i->toString(), i->isABSONObj()); - const BSONObj &geoObj = i->Obj(); vector<string> cells; - bool succeeded = S2GetKeysForObject(geoObj, params, &cells); + bool succeeded = S2GetKeysForObject(*i, params, &cells); uassert(16755, "Can't extract geo keys from object, malformed geometry?: " + document.toString(), succeeded); |