From 77dd59b56f42d8de7ab7b4dd734977902f430688 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Wed, 22 Jul 2020 18:28:22 +0200 Subject: [PATCH] fix fontconfig and freetype leaks --- src/vkvg_device.c | 2 ++ src/vkvg_fonts.c | 6 ++++-- tests/common/vkengine.c | 4 ++-- tests/test1.c | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/vkvg_device.c b/src/vkvg_device.c index e680890..74d0edf 100644 --- a/src/vkvg_device.c +++ b/src/vkvg_device.c @@ -177,6 +177,8 @@ void vkvg_device_destroy (VkvgDevice dev) vkFreeCommandBuffers (dev->vkDev, dev->cmdPool, 1, &dev->cmd); vkDestroyCommandPool (dev->vkDev, dev->cmdPool, NULL); + vkh_queue_destroy(dev->gQueue); + _destroy_font_cache(dev); vmaDestroyAllocator (dev->allocator); diff --git a/src/vkvg_fonts.c b/src/vkvg_fonts.c index 4e8ffc0..e198b9b 100644 --- a/src/vkvg_fonts.c +++ b/src/vkvg_fonts.c @@ -161,8 +161,6 @@ void _init_next_line_in_tex_cache (VkvgDevice dev, _vkvg_font_t* f){ void _destroy_font_cache (VkvgDevice dev){ _font_cache_t* cache = (_font_cache_t*)dev->fontCache; - //FcFini(); - free (cache->hostBuff); for (int i = 0; i < cache->fontsCount; ++i) { @@ -189,6 +187,10 @@ void _destroy_font_cache (VkvgDevice dev){ //vkFreeCommandBuffers(dev->vkDev,dev->cmdPool, 1, &cache->cmd); vkDestroyFence (dev->vkDev,cache->uploadFence,NULL); + FT_Done_FreeType(cache->library); + FcConfigDestroy(cache->config); + FcFini(); + free (dev->fontCache); } diff --git a/tests/common/vkengine.c b/tests/common/vkengine.c index 6ef5b1e..287e8b7 100644 --- a/tests/common/vkengine.c +++ b/tests/common/vkengine.c @@ -130,8 +130,8 @@ vk_engine_t* vkengine_create (VkPhysicalDeviceType preferedGPU, VkPresentModeKHR | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT , VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT - //| VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT - //| VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT + | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT , NULL); #endif diff --git a/tests/test1.c b/tests/test1.c index 097d51e..5fb17bf 100644 --- a/tests/test1.c +++ b/tests/test1.c @@ -356,7 +356,7 @@ void cairo_tests () { cairo_print_arc_neg(ctx); vkvg_translate(ctx,250,0); - //cairo_test_text(ctx); + cairo_test_text(ctx); vkvg_translate(ctx,-500,250); cairo_test_curves(ctx); -- 2.47.3