From 0afd14ae29e03f2781981180ddc42208e3da67c0 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 26 Aug 2016 17:47:24 -0700 Subject: [core] Eliminate use of util::ptr in GeometryTile* interfaces --- src/mbgl/tile/vector_tile.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'src/mbgl/tile/vector_tile.cpp') diff --git a/src/mbgl/tile/vector_tile.cpp b/src/mbgl/tile/vector_tile.cpp index e96080ce8c..c388a60cbb 100644 --- a/src/mbgl/tile/vector_tile.cpp +++ b/src/mbgl/tile/vector_tile.cpp @@ -39,7 +39,7 @@ public: VectorTileLayer(protozero::pbf_reader); std::size_t featureCount() const override { return features.size(); } - util::ptr getFeature(std::size_t) const override; + std::unique_ptr getFeature(std::size_t) const override; std::string getName() const override; private: @@ -59,12 +59,12 @@ class VectorTileData : public GeometryTileData { public: VectorTileData(std::shared_ptr data); - util::ptr getLayer(const std::string&) const override; + const GeometryTileLayer* getLayer(const std::string&) const override; private: std::shared_ptr data; mutable bool parsed = false; - mutable std::map> layers; + mutable std::map layers; }; VectorTile::VectorTile(const OverscaledTileID& id_, @@ -242,21 +242,20 @@ VectorTileData::VectorTileData(std::shared_ptr data_) : data(std::move(data_)) { } -util::ptr VectorTileData::getLayer(const std::string& name) const { +const GeometryTileLayer* VectorTileData::getLayer(const std::string& name) const { if (!parsed) { parsed = true; protozero::pbf_reader tile_pbf(*data); while (tile_pbf.next(3)) { - util::ptr layer = std::make_shared(tile_pbf.get_message()); - layers.emplace(layer->name, layer); + VectorTileLayer layer(tile_pbf.get_message()); + layers.emplace(layer.name, std::move(layer)); } } - auto layer_it = layers.find(name); - if (layer_it != layers.end()) { - return layer_it->second; + auto it = layers.find(name); + if (it != layers.end()) { + return &it->second; } - return nullptr; } @@ -291,8 +290,8 @@ VectorTileLayer::VectorTileLayer(protozero::pbf_reader layer_pbf) { } } -util::ptr VectorTileLayer::getFeature(std::size_t i) const { - return std::make_shared(features.at(i), *this); +std::unique_ptr VectorTileLayer::getFeature(std::size_t i) const { + return std::make_unique(features.at(i), *this); } std::string VectorTileLayer::getName() const { -- cgit v1.2.1