https://git.reactos.org/?p=reactos.git;a=commitdiff;h=2e44e5ce54ea67a6cc290…
commit 2e44e5ce54ea67a6cc29003a72500f05ebad7a43
Author: Mark Jansen <mark.jansen(a)reactos.org>
AuthorDate: Sat Dec 29 19:46:04 2018 +0100
Commit: Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Sat Dec 29 19:47:00 2018 +0100
[FONT][WIN32SS] Fix a memory leak
---
win32ss/gdi/ntgdi/freetype.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c
index e24e79cc22..08d164a2eb 100644
--- a/win32ss/gdi/ntgdi/freetype.c
+++ b/win32ss/gdi/ntgdi/freetype.c
@@ -6050,8 +6050,12 @@ GreExtTextOutW(
if ( !HSourceGlyph )
{
DPRINT1("WARNING: EngCreateBitmap() failed!\n");
- // FT_Done_Glyph(realglyph);
bResult = FALSE;
+ if (EmuBold || EmuItalic)
+ {
+ FT_Done_Glyph(realglyph);
+ }
+
break;
}
SourceGlyphSurf = EngLockSurface((HSURF)HSourceGlyph);
@@ -6060,6 +6064,11 @@ GreExtTextOutW(
EngDeleteSurface((HSURF)HSourceGlyph);
DPRINT1("WARNING: EngLockSurface() failed!\n");
bResult = FALSE;
+ if (EmuBold || EmuItalic)
+ {
+ FT_Done_Glyph(realglyph);
+ }
+
break;
}
@@ -6108,6 +6117,11 @@ GreExtTextOutW(
if (DoBreak)
{
+ if (EmuBold || EmuItalic)
+ {
+ FT_Done_Glyph(realglyph);
+ }
+
break;
}