diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-08-16 15:15:28 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-08-19 10:05:35 +0200 |
commit | 93b5d2c5e5d2dcd701d5aa87f6cb4e6039385a9b (patch) | |
tree | 769f8b9d6f161cee31a2421e8af21e4106267cea | |
parent | 98dbed241b94ac78dde001d58a3598ec01535bb6 (diff) | |
download | qtlocation-mapboxgl-upstream/image-manager-cleanup.tar.gz |
[core] also remove version info in ImageManager when removing an imageupstream/image-manager-cleanup
-rw-r--r-- | src/mbgl/renderer/image_manager.cpp | 1 | ||||
-rw-r--r-- | test/renderer/image_manager.test.cpp | 12 |
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; |