mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-05-01 22:53:36 +00:00
first patch of UB
This commit is contained in:
parent
d36433cafc
commit
5265eef759
|
|
@ -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 ../..
|
||||
Loading…
Reference in a new issue