summaryrefslogtreecommitdiff
path: root/src/mongo/db/index/expression_keys_private.cpp
diff options
context:
space:
mode:
authorSiyuan Zhou <siyuan.zhou@mongodb.com>2014-08-27 18:31:04 -0400
committerSiyuan Zhou <siyuan.zhou@mongodb.com>2014-09-15 15:37:28 -0400
commit13617e4a80f2d1be45f2b6f237e0f13b1d1c68a0 (patch)
tree20cf5601dfc7399ddfd46dd9c8a215257563e9ba /src/mongo/db/index/expression_keys_private.cpp
parent8ffb9fae4fc1dbc6519bf4b04ac9316616c2efdf (diff)
downloadmongo-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.cpp7
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);