From 9e9a27055097c3519afb5ee139164b5738a02e6f Mon Sep 17 00:00:00 2001 From: Green Sky Date: Thu, 9 Oct 2025 18:11:06 +0200 Subject: [PATCH] more error checking around images, should prevent vram leaks --- src/message_image_loader.cpp | 7 +++++++ src/texture_cache.hpp | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/message_image_loader.cpp b/src/message_image_loader.cpp index a1971db..a763cdf 100644 --- a/src/message_image_loader.cpp +++ b/src/message_image_loader.cpp @@ -103,10 +103,17 @@ TextureLoaderResult MessageImageLoader::load(TextureUploaderI& tu, Message3Handl new_entry.current_texture = 0; for (const auto& [ms, data] : res.frames) { const auto n_t = tu.upload(data.data(), res.width, res.height); + if (n_t == 0) { + continue; + } new_entry.textures.push_back(n_t); new_entry.frame_duration.push_back(ms); } + if (new_entry.textures.empty()) { + continue; + } + new_entry.width = res.width; new_entry.height = res.height; diff --git a/src/texture_cache.hpp b/src/texture_cache.hpp index 860c39c..20cb703 100644 --- a/src/texture_cache.hpp +++ b/src/texture_cache.hpp @@ -116,6 +116,9 @@ struct TextureCache { _tu.destroy(tex_id); } } + for (const auto& tex_id : _default_texture.textures) { + _tu.destroy(tex_id); + } } struct GetInfo {