У меня проблема с функцией cairo_debug_reset_static_data (), когда я комбинирую pango lib и cairo, поскольку при ее вызове я получаю следующее утверждение.
draw: cairo-hash.c: 217: _cairo_hash_table_destroy: Утверждение `hash_table-> live_entries == 0 'не выполнено.
Вот код, который я взял из следующего сообщения: где некоторые у одного была аналогичная проблема, но они не поделились там каким-либо рабочим решением (я уже пробовал решение из сообщения, но оно не сработало). Если мы удалим закомментированные строки, то будет утверждение.
#include <cairo.h>
#include <pango/pangocairo.h>
int
main (int argc, char *argv[])
{
cairo_surface_t *surface;
cairo_t *context;
surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 120, 120);
context = cairo_create(surface);
PangoRectangle extents;
PangoLayout *layout;
PangoFontDescription *desc;
layout = pango_cairo_create_layout (context);
desc = pango_font_description_from_string("Inconsolata 12");
pango_layout_set_font_description(layout, desc);
pango_font_description_free(desc);
pango_layout_set_markup(layout, "hello", -1);
//pango_layout_get_pixel_extents(layout, &extents, NULL);
//pango_cairo_show_layout(context, layout);
g_object_unref(layout);
cairo_destroy(context);
cairo_surface_destroy(surface);
cairo_debug_reset_static_data();
return(0);
}
Я попытался поиграть, чтобы решить эту проблему, а также поискал их документацию, но не нашел ничего полезного. Кто-нибудь, кто разбирается в пангокаире, пожалуйста, пролей свет и укажи мне правильное направление.
Спасибо