summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mbgl/renderer/image_manager.cpp1
-rw-r--r--test/renderer/image_manager.test.cpp12
2 files changed, 13 insertions, 0 deletions
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<style::Image::Impl>("one", PremultipliedImage({ 16, 16 }), 2));
+ EXPECT_EQ(0, imageManager.updatedImageVersions.size());
+ imageManager.updateImage(makeMutable<style::Image::Impl>("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;