From b6efb6265d8f1ad77812680d0e5106c19a175366 Mon Sep 17 00:00:00 2001 From: MatthewBeshay <92357869+MatthewBeshay@users.noreply.github.com> Date: Mon, 23 Mar 2026 09:04:45 +1100 Subject: [PATCH] fix(textures): guard StitchedTexture frame cleanup for SimpleIcon instances --- .../Textures/Stitching/StitchedTexture.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Minecraft.Client/Textures/Stitching/StitchedTexture.cpp b/Minecraft.Client/Textures/Stitching/StitchedTexture.cpp index f0f70eb9e..c4eb5c316 100644 --- a/Minecraft.Client/Textures/Stitching/StitchedTexture.cpp +++ b/Minecraft.Client/Textures/Stitching/StitchedTexture.cpp @@ -42,20 +42,29 @@ StitchedTexture::StitchedTexture(const std::wstring& name, } void StitchedTexture::freeFrameTextures() { - if (frames) { + if (frames != NULL) { for (AUTO_VAR(it, frames->begin()); it != frames->end(); ++it) { TextureManager::getInstance()->unregisterTexture(L"", *it); delete *it; } delete frames; + frames = NULL; } } StitchedTexture::~StitchedTexture() { - for (AUTO_VAR(it, frames->begin()); it != frames->end(); ++it) { - delete *it; + if (frames != NULL) { + for (AUTO_VAR(it, frames->begin()); it != frames->end(); ++it) { + delete *it; + } + delete frames; + frames = NULL; + } + + if (frameOverride != NULL) { + delete frameOverride; + frameOverride = NULL; } - delete frames; } void StitchedTexture::initUVs(float U0, float V0, float U1, float V1) {