当我将 pango lib 和 cairo 结合起来时,我遇到了 cairo_debug_reset_static_data() 函数的问题,因为当它被调用时我得到了以下断言。
绘制: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);
}
我试图解决这个问题,也搜索了他们的文档,但找不到任何有用的东西。一些对pangocairo有专业知识的人,请给我一些启发并指出正确的方向。
谢谢