aboutsummaryrefslogtreecommitdiff
path: root/src/ImageViewer.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-04-06 04:42:24 +0200
committerdec05eba <dec05eba@protonmail.com>2021-04-06 04:42:24 +0200
commit797a36228bdb3b77b7314585a31de6f27feab51d (patch)
tree211b9dfbfe1922ce20977618cc73c8960245b79a /src/ImageViewer.cpp
parent8d8c01258a9414b90ecf3e1e374390543c29c4d9 (diff)
Use malloc_trim to reduce memory usage after freeing memory
Diffstat (limited to 'src/ImageViewer.cpp')
-rw-r--r--src/ImageViewer.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ImageViewer.cpp b/src/ImageViewer.cpp
index 6efc688..9297edf 100644
--- a/src/ImageViewer.cpp
+++ b/src/ImageViewer.cpp
@@ -5,6 +5,7 @@
#include "../include/ResourceLoader.hpp"
#include "../plugins/Manga.hpp"
#include <cmath>
+#include <malloc.h>
#include <SFML/Window/Event.hpp>
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Graphics/RectangleShape.hpp>
@@ -265,6 +266,7 @@ namespace QuickMedia {
min_page_center_dist = 9999999.0;
page_closest_to_center = -1;
+ bool loaded_textures_changed = false;
int page_i = 0;
for(auto &page_data : image_data) {
if(page_data) {
@@ -287,6 +289,7 @@ namespace QuickMedia {
page_data->image_status = ImageStatus::FAILED_TO_LOAD;
}
page_data->image.reset();
+ loaded_textures_changed = true;
}
page_data->visible_on_screen = false;
}
@@ -349,10 +352,14 @@ namespace QuickMedia {
if(page_data && !page_data->visible_on_screen) {
fprintf(stderr, "ImageViewer: Unloaded page %d\n", 1 + i);
page_data.reset();
+ loaded_textures_changed = true;
}
++i;
}
+ if(loaded_textures_changed)
+ malloc_trim(0);
+
return ImageViewerAction::NONE;
}