summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleg Oshmyan <chortos@inbox.lv>2024-02-19 20:36:49 +0200
committerOleg Oshmyan <chortos@inbox.lv>2024-02-19 20:48:49 +0200
commit3887c2113d92277249a69c59ede64f3027461bdf (patch)
tree312fe7ee43d1f3748fc149f6b6675fd326d5137f
parent58a8f09cccb4829239855791a305d1336d8ee773 (diff)
downloadlibass-3887c2113d92277249a69c59ede64f3027461bdf.tar.bz2
libass-3887c2113d92277249a69c59ede64f3027461bdf.tar.xz
directwrite: fix outdated dealloc code that has become leaky
Regression in commit b6650bd51b4c471c32dd3977ca9416c0b35f6358: fullnames and families are no longer allocated, so freeing them is pointless, wherease extended_family is allocated in their stead and yet is never freed. Reported-by: @moi15moi
-rw-r--r--libass/ass_directwrite.c26
1 files changed, 2 insertions, 24 deletions
diff --git a/libass/ass_directwrite.c b/libass/ass_directwrite.c
index d66ea5d..1c7a3f0 100644
--- a/libass/ass_directwrite.c
+++ b/libass/ass_directwrite.c
@@ -638,19 +638,8 @@ static void add_font_face(IDWriteFontFace *face, ASS_FontProvider *provider,
ass_font_provider_add_font(provider, &meta, NULL, 0, font_priv);
cleanup:
- if (meta.families) {
- for (int k = 0; k < meta.n_family; k++)
- free(meta.families[k]);
- free(meta.families);
- }
-
- if (meta.fullnames) {
- for (int k = 0; k < meta.n_fullname; k++)
- free(meta.fullnames[k]);
- free(meta.fullnames);
- }
-
free(meta.postscript_name);
+ free(meta.extended_family);
if (face)
IDWriteFontFace_Release(face);
@@ -828,19 +817,8 @@ static void add_font(IDWriteFont *font, IDWriteFontFamily *fontFamily,
ass_font_provider_add_font(provider, &meta, NULL, 0, font_priv);
cleanup:
- if (meta.families) {
- for (int k = 0; k < meta.n_family; k++)
- free(meta.families[k]);
- free(meta.families);
- }
-
- if (meta.fullnames) {
- for (int k = 0; k < meta.n_fullname; k++)
- free(meta.fullnames[k]);
- free(meta.fullnames);
- }
-
free(meta.postscript_name);
+ free(meta.extended_family);
if (font)
IDWriteFont_Release(font);