summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-08-16 15:15:28 +0200
committerKonstantin Käfer <mail@kkaefer.com>2019-08-19 10:05:35 +0200
commit93b5d2c5e5d2dcd701d5aa87f6cb4e6039385a9b (patch)
tree769f8b9d6f161cee31a2421e8af21e4106267cea
parent98dbed241b94ac78dde001d58a3598ec01535bb6 (diff)
downloadqtlocation-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.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;