Mercurial > octave
changeset 32664:1b65ba91eeda stable
Stop memory leaks in class ft_manager.
Multiple leaks in external library Fontconfig caused by creating resources and
then not calling library routines to destroy them.
* ft-text-renderer.cc (ft_manager::do_get_system_fonts): Call FcPatternDestroy,
FcObjectSetDestroy, FcCharSetDestroy to free memory after use.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 28 Dec 2023 16:00:11 -0800 |
parents | bc244a5f113e |
children | 27bc8e663a2c |
files | libinterp/corefcn/ft-text-renderer.cc |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/ft-text-renderer.cc Thu Dec 28 14:06:19 2023 -0800 +++ b/libinterp/corefcn/ft-text-renderer.cc Thu Dec 28 16:00:11 2023 -0800 @@ -260,8 +260,15 @@ font_map.assign ("weight", weights); font_map.assign ("suitable", suitable); + // Free up memory within libfontconfig if (fs) FcFontSetDestroy (fs); + if (pat) // Supposed to be freed by FcFontSetDestroy above, but isn't. + FcPatternDestroy (pat); + if (os) + FcObjectSetDestroy (os); + if (minimal_charset) + FcCharSetDestroy (minimal_charset); } #endif }