Fix memory leak detected by address sanitizer (#10896)

This commit is contained in:
k.h.lai 2021-02-03 03:56:24 +08:00 committed by GitHub
parent f227e40180
commit 2072afb72b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 3 deletions

View File

@ -153,7 +153,7 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver)
RenderingEngine::~RenderingEngine()
{
core.reset();
m_device->drop();
m_device->closeDevice();
s_singleton = nullptr;
}

View File

@ -75,8 +75,6 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
if (name.empty())
return NULL;
m_to_delete.insert(name);
#if ENABLE_GLES
video::ITexture *retval = m_driver->findTexture(name.c_str());
if (retval)
@ -88,6 +86,7 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
image = Align2Npot2(image, m_driver);
retval = m_driver->addTexture(name.c_str(), image);
m_to_delete.insert(name);
image->drop();
return retval;
#else

View File

@ -378,6 +378,7 @@ bool CGUITTFont::load(const io::path& filename, const u32 size, const bool antia
}
// Store our face.
sguitt_face = face;
tt_face = face->face;
// Store font metrics.
@ -436,6 +437,9 @@ CGUITTFont::~CGUITTFont()
// Drop our driver now.
if (Driver)
Driver->drop();
// Destroy sguitt_face after clearing c_faces
delete sguitt_face;
}
void CGUITTFont::reset_images()

View File

@ -375,6 +375,7 @@ namespace gui
gui::IGUIEnvironment* Environment;
video::IVideoDriver* Driver;
io::path filename;
SGUITTFace* sguitt_face = nullptr;
FT_Face tt_face;
FT_Size_Metrics font_metrics;
FT_Int32 load_flags;