summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/expression_index.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/query/expression_index.cpp')
-rw-r--r--src/mongo/db/query/expression_index.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/mongo/db/query/expression_index.cpp b/src/mongo/db/query/expression_index.cpp
index f2e1439610a..09a1fb95e66 100644
--- a/src/mongo/db/query/expression_index.cpp
+++ b/src/mongo/db/query/expression_index.cpp
@@ -109,20 +109,17 @@ void ExpressionMapping::cover2d(const R2Region& region,
}
std::vector<S2CellId> ExpressionMapping::get2dsphereCovering(const S2Region& region) {
- uassert(28739,
- "Geo coarsest level must be in range [0,30]",
- 0 <= internalQueryS2GeoCoarsestLevel && internalQueryS2GeoCoarsestLevel <= 30);
- uassert(28740,
- "Geo finest level must be in range [0,30]",
- 0 <= internalQueryS2GeoFinestLevel && internalQueryS2GeoFinestLevel <= 30);
- uassert(28741,
- "Geo coarsest level must be less than or equal to finest",
- internalQueryS2GeoCoarsestLevel <= internalQueryS2GeoFinestLevel);
+ auto minLevel = internalQueryS2GeoCoarsestLevel.load();
+ auto maxLevel = internalQueryS2GeoFinestLevel.load();
+
+ uassert(28739, "Geo coarsest level must be in range [0,30]", 0 <= minLevel && minLevel <= 30);
+ uassert(28740, "Geo finest level must be in range [0,30]", 0 <= maxLevel && maxLevel <= 30);
+ uassert(28741, "Geo coarsest level must be less than or equal to finest", minLevel <= maxLevel);
S2RegionCoverer coverer;
- coverer.set_min_level(internalQueryS2GeoCoarsestLevel);
- coverer.set_max_level(internalQueryS2GeoFinestLevel);
- coverer.set_max_cells(internalQueryS2GeoMaxCells);
+ coverer.set_min_level(minLevel);
+ coverer.set_max_level(maxLevel);
+ coverer.set_max_cells(internalQueryS2GeoMaxCells.load());
std::vector<S2CellId> cover;
coverer.GetCovering(region, &cover);