From 93b5d2c5e5d2dcd701d5aa87f6cb4e6039385a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Fri, 16 Aug 2019 15:15:28 +0200 Subject: [core] also remove version info in ImageManager when removing an image --- src/mbgl/renderer/image_manager.cpp | 1 + test/renderer/image_manager.test.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/mbgl/renderer/image_manager.cpp b/src/mbgl/renderer/image_manager.cpp index 3c22cdcf32..4bbdbca5d9 100644 --- a/src/mbgl/renderer/image_manager.cpp +++ b/src/mbgl/renderer/image_manager.cpp @@ -81,6 +81,7 @@ void ImageManager::removeImage(const std::string& id) { requestedImages.erase(requestedIt); } images.erase(it); + updatedImageVersions.erase(id); } const style::Image::Impl* ImageManager::getImage(const std::string& id) const { diff --git a/test/renderer/image_manager.test.cpp b/test/renderer/image_manager.test.cpp index 0b72578c35..16700d713f 100644 --- a/test/renderer/image_manager.test.cpp +++ b/test/renderer/image_manager.test.cpp @@ -50,6 +50,18 @@ TEST(ImageManager, AddRemove) { EXPECT_EQ(nullptr, imageManager.getImage("four")); } +TEST(ImageManager, Update) { + FixtureLog log; + ImageManager imageManager; + + imageManager.addImage(makeMutable("one", PremultipliedImage({ 16, 16 }), 2)); + EXPECT_EQ(0, imageManager.updatedImageVersions.size()); + imageManager.updateImage(makeMutable("one", PremultipliedImage({ 16, 16 }), 2)); + EXPECT_EQ(1, imageManager.updatedImageVersions.size()); + imageManager.removeImage("one"); + EXPECT_EQ(0, imageManager.updatedImageVersions.size()); +} + TEST(ImageManager, RemoveReleasesBinPackRect) { FixtureLog log; ImageManager imageManager; -- cgit v1.2.1