Skip to content

Commit 118fe00

Browse files
Small fixes wrt caching (#80)
1 parent 09e3ff8 commit 118fe00

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

src/OpenStreetMap-esp32.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -165,15 +165,12 @@ CachedTile *OpenStreetMap::findUnusedTile(const tileList &requiredTiles, uint8_t
165165
return nullptr; // no unused tile found
166166
}
167167

168-
bool OpenStreetMap::isTileCached(uint32_t x, uint32_t y, uint8_t z)
168+
bool OpenStreetMap::isTileCachedOrBusy(uint32_t x, uint32_t y, uint8_t z)
169169
{
170170
for (const auto &tile : tilesCache)
171171
{
172-
if (tile.x == x && tile.y == y && tile.z == z)
173-
{
174-
if (tile.valid || tile.busy)
175-
return true;
176-
}
172+
if (tile.x == x && tile.y == y && tile.z == z && (tile.valid || tile.busy))
173+
return true;
177174
}
178175
return false;
179176
}
@@ -228,7 +225,7 @@ void OpenStreetMap::makeJobList(const tileList &requiredTiles, std::vector<TileJ
228225
{
229226
for (const auto &[x, y] : requiredTiles)
230227
{
231-
if (isTileCached(x, y, zoom) || y < 0 || y >= (1 << zoom))
228+
if (isTileCachedOrBusy(x, y, zoom) || y < 0 || y >= (1 << zoom))
232229
continue;
233230

234231
CachedTile *tileToReplace = findUnusedTile(requiredTiles, zoom);

src/OpenStreetMap-esp32.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class OpenStreetMap
9595
void makeJobList(const tileList &requiredTiles, std::vector<TileJob> &jobs, uint8_t zoom);
9696
void runJobs(const std::vector<TileJob> &jobs);
9797
CachedTile *findUnusedTile(const tileList &requiredTiles, uint8_t zoom);
98-
bool isTileCached(uint32_t x, uint32_t y, uint8_t z);
98+
bool isTileCachedOrBusy(uint32_t x, uint32_t y, uint8_t z);
9999
bool fetchTile(CachedTile &tile, uint32_t x, uint32_t y, uint8_t zoom, String &result);
100100
std::optional<std::unique_ptr<MemoryBuffer>> urlToBuffer(const char *url, String &result);
101101
bool fillBuffer(WiFiClient *stream, MemoryBuffer &buffer, size_t contentSize, String &result);

0 commit comments

Comments
 (0)