mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-06-26 08:25:34 +00:00
first patch of UB
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,4 +86,4 @@ public:
|
||||
void setFlags(int flags); // 4J added
|
||||
virtual void freeFrameTextures(); // 4J added
|
||||
virtual bool hasOwnData(); // 4J Added
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#pragma once
|
||||
#include "MemoryTracker.h"
|
||||
class ByteBuffer;
|
||||
class IntBuffer;
|
||||
class FloatBuffer;
|
||||
|
||||
@@ -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
6
debug.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
meson compile -C build && \
|
||||
cd build/Minecraft.Client/ && \
|
||||
gdb -tui ./Minecraft.Client && \
|
||||
cd ../..
|
||||
Reference in New Issue
Block a user