Cleanup freetype library on exit

This commit is contained in:
Kovid Goyal 2017-09-28 11:22:18 +05:30
parent 150ffab72d
commit 7ddaa70498
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -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);