mirror of
https://github.com/GabsPuNs/Project-Zenith-Main.git
synced 2026-07-09 05:58:34 +00:00
Fix multiple memory leaks and stale pooled allocations
* Fix Vec3/AABB pool reset logic
* resetPool()/clearPool() now reset poolPointer to 0
* Prevents endless pool growth, invalid temporary references,
and increasing memory usage
* Resolves the leaderboard-related crash mentioned in
Windows64_Minecraft.cpp
* Properly free old screens in Minecraft::setScreen()
* Added virtual destructor to Screen
* Screen destructor now cleans up GuiParticles and Buttons
* Previous screen is now deleted after screen transitions
* Screen::init() now clears old buttons/particles before re-init
* Fix GuiParticles memory leak
* Removed GuiParticle instances are now deleted in tick()
* Added GuiParticles destructor to free remaining particles
This commit is contained in:
@@ -47,10 +47,16 @@ Vec3 *Vec3::newPermanent(double x, double y, double z)
|
||||
|
||||
void Vec3::clearPool()
|
||||
{
|
||||
ThreadStorage *tls = static_cast<ThreadStorage *>(TlsGetValue(tlsIdx));
|
||||
if (tls != nullptr)
|
||||
{
|
||||
tls->poolPointer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void Vec3::resetPool()
|
||||
{
|
||||
clearPool();
|
||||
}
|
||||
|
||||
Vec3 *Vec3::newTemp(double x, double y, double z)
|
||||
|
||||
Reference in New Issue
Block a user