summaryrefslogtreecommitdiff
path: root/src/mongo/db/geo/r2_region_coverer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/geo/r2_region_coverer.cpp')
-rw-r--r--src/mongo/db/geo/r2_region_coverer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mongo/db/geo/r2_region_coverer.cpp b/src/mongo/db/geo/r2_region_coverer.cpp
index 43c0094e04b..155546266b2 100644
--- a/src/mongo/db/geo/r2_region_coverer.cpp
+++ b/src/mongo/db/geo/r2_region_coverer.cpp
@@ -54,10 +54,8 @@ struct R2RegionCoverer::CompareQueueEntries : public less<QueueEntry> {
}
};
-// Doesn't take ownership of "hashConverter". The caller should guarantee its life cycle
-// is longer than this coverer.
-R2RegionCoverer::R2RegionCoverer(GeoHashConverter* hashConverter)
- : _hashConverter(hashConverter),
+R2RegionCoverer::R2RegionCoverer(std::unique_ptr<GeoHashConverter> hashConverter)
+ : _hashConverter(std::move(hashConverter)),
_minLevel(0u),
_maxLevel(GeoHash::kMaxBits),
_maxCells(kDefaultMaxCells),
@@ -136,6 +134,10 @@ void R2RegionCoverer::getCovering(const R2Region& region, vector<GeoHash>* cover
cover->swap(*_results);
}
+const GeoHashConverter& R2RegionCoverer::getHashConverter() const {
+ return *_hashConverter;
+}
+
// Caller owns the returned pointer
R2RegionCoverer::Candidate* R2RegionCoverer::newCandidate(const GeoHash& cell) {
// Exclude the cell that doesn't intersect with the geometry.