From 7ddaa7049839d57f827bb17b351c8d7b530152b6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 28 Sep 2017 11:22:18 +0530 Subject: [PATCH] Cleanup freetype library on exit --- kitty/freetype.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/kitty/freetype.c b/kitty/freetype.c index 933308377..6cb918310 100644 --- a/kitty/freetype.c +++ b/kitty/freetype.c @@ -260,6 +260,10 @@ PyTypeObject Face_Type = { INIT_TYPE(Face) +static void +free_freetype() { + FT_Done_FreeType(library); +} bool init_freetype_library(PyObject *m) { @@ -268,6 +272,10 @@ init_freetype_library(PyObject *m) { set_freetype_error("Failed to initialize FreeType library, with error:", error); return false; } + if (Py_AtExit(free_freetype) != 0) { + PyErr_SetString(PyExc_RuntimeError, "Failed to register the freetype library at exit handler"); + return false; + } if (PyStructSequence_InitType2(&GlpyhMetricsType, &gm_desc) != 0) return false; if (PyStructSequence_InitType2(&BitmapType, &bm_desc) != 0) return false; PyModule_AddObject(m, "GlyphMetrics", (PyObject*)&GlpyhMetricsType);