mojira.dev
MC-98707

Texture manager is not deleting entry in mapTextureObjects when texture is deleted

The bug

The following is based on decompiled version of Minecraft 1.10.2 using MCP. All method and class names are the names used in the decompiled version.

The public void deleteTexture(ResourceLocation textureLocation) method of the net.minecraft.client.renderer.texture.TextureManager class is not removing the entry for the provided ResourceLocation in the mapTextureObjects map.

public void deleteTexture(ResourceLocation textureLocation)
{
    ITextureObject itextureobject = this.getTexture(textureLocation);

    if (itextureobject != null)
    {
        // suggested fix: add this line
        this.mapTextureObjects.remove(textureLocation); 
        TextureUtil.deleteTexture(itextureobject.getGlTextureId());
    }
}

This is very likely still the case in 1.11 snapshot 16w42a:

  • Class: byu

  • Method: public void c(kq ?)

public void c(kq ?)
{
    byv ? = b(?);
    if (? != null) {
        byw.a(?.b());
    }
}

Comments

galaxy_2alex

Does this still affect the latest versions of the game (Stable 1.15.2 / Snapshot 20w21a)? If so, please update this ticket accordingly - Unfortunately, I am unable to do so myself.

Quick Links:
📓 Issue Guidelines – 💬 Community Support – 📧 Customer Support – ✍️ Feedback and Suggestions – 📖 Game Wiki

tryashtar

I believe this was fixed in 1.20 pre-3

marcono1234

(Unassigned)

Community Consensus

(Unassigned)

texture

Minecraft 1.9, Minecraft 1.10.2, Minecraft 16w41a, Minecraft 16w42a, Minecraft 1.13.2, Minecraft 19w03b

Retrieved