first patch of UB

This commit is contained in:
Nikita Edel 2026-03-09 21:54:43 +01:00
parent d36433cafc
commit 5265eef759
8 changed files with 30 additions and 9 deletions

View file

@ -4111,7 +4111,7 @@ void CMinecraftApp::loadStringTable()
{
byteArray locFile = m_mediaArchive->getFile(localisationFile);
m_stringTable = new StringTable(locFile.data, locFile.length);
delete locFile.data;
delete[] locFile.data;
}
else
{

View file

@ -60,11 +60,19 @@ void StitchedTexture::freeFrameTextures()
StitchedTexture::~StitchedTexture()
{
for(AUTO_VAR(it, frames->begin()); it != frames->end(); ++it)
{
delete *it;
// 4jcraft added null check, in PreStitchedTextures::stitch(), than ::loadUVs()
// all new SimpleIcons deriving from StitchedIcons are calling the
// constructor which does frames = NULL
// so the program breaks on delete oldClock in ::loadUVs()
// but scince "frames" is never allocated (StitchedTexture::init())
// not called, frames was never called (only the constructor)
if(frames) {
for(AUTO_VAR(it, frames->begin()); it != frames->end(); ++it)
{
delete *it;
}
delete frames;
}
delete frames;
}
void StitchedTexture::initUVs(float U0, float V0, float U1, float V1)
@ -351,4 +359,4 @@ int StitchedTexture::getFlags() const
bool StitchedTexture::hasOwnData()
{
return true;
}
}

View file

@ -86,4 +86,4 @@ public:
void setFlags(int flags); // 4J added
virtual void freeFrameTextures(); // 4J added
virtual bool hasOwnData(); // 4J Added
};
};

View file

@ -193,4 +193,4 @@ Texture *TextureManager::createTexture(const std::wstring &name, int mode, int w
// 4J Stu - Don't clamp as it causes issues with how we signal non-mipmmapped textures to the pixel shader
//return createTexture(name, mode, width, height, Texture::WM_CLAMP, format, Texture::TFLT_NEAREST, Texture::TFLT_NEAREST, mipmap, NULL);
return createTexture(name, mode, width, height, Texture::WM_WRAP, format, Texture::TFLT_NEAREST, Texture::TFLT_NEAREST, mipmap, NULL);
}
}

View file

@ -1,5 +1,4 @@
#pragma once
#include "MemoryTracker.h"
class ByteBuffer;
class IntBuffer;
class FloatBuffer;

View file

@ -16,6 +16,8 @@ public:
static const int IS_ALPHA_CUT_OUT = 4;
#endif
virtual ~Icon() {} // added by 4jcraft, needed for abstract class
virtual int getX() const = 0;
virtual int getY() const = 0;
virtual int getWidth() const = 0;

6
debug.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
meson compile -C build && \
cd build/Minecraft.Client/ && \
gdb -tui ./Minecraft.Client && \
cd ../..

6
run.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
meson compile -C build && \
cd build/Minecraft.Client/ && \
./Minecraft.Client && \
cd ../..