diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-06 16:30:35 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-06-10 12:42:14 +0200 |
commit | 5f052941183f89b574107727f4bf3b7299b332a2 (patch) | |
tree | 5acbc6e7379b915cbc3a2a3a791e56b79a630ce5 | |
parent | 7235ba0bfba31294b4af3bf3b5475d79d96f5f36 (diff) | |
download | qtlocation-mapboxgl-5f052941183f89b574107727f4bf3b7299b332a2.tar.gz |
[core] Move cache lookup out of Source::createTile
-rw-r--r-- | src/mbgl/style/source.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp index 8f33a62d07..e0c0f5dec0 100644 --- a/src/mbgl/style/source.cpp +++ b/src/mbgl/style/source.cpp @@ -190,10 +190,6 @@ const std::map<UnwrappedTileID, Tile>& Source::getTiles() const { std::unique_ptr<TileData> Source::createTile(const OverscaledTileID& overscaledTileID, const UpdateParameters& parameters) { - if (auto data = cache.get(overscaledTileID)) { - return data; - } - // If we don't find working tile data, we're just going to load it. if (type == SourceType::Raster) { assert(!tileset->tiles.empty()); @@ -297,7 +293,11 @@ bool Source::update(const UpdateParameters& parameters) { return getTileData(dataTileID); }; auto createTileDataFn = [this, ¶meters](const OverscaledTileID& dataTileID) -> TileData* { - if (auto data = createTile(dataTileID, parameters)) { + std::unique_ptr<TileData> data = cache.get(dataTileID); + if (!data) { + data = createTile(dataTileID, parameters); + } + if (data) { return tileDataMap.emplace(dataTileID, std::move(data)).first->second.get(); } else { return nullptr; |