cairo draw_text и висячий указатель на размеченных строках?
Я пытаюсь использовать cairo для draw_text на экране, но инструмент Mac Os X говорит мне, что у меня есть повисшая причина указателя из-за pango_layout_get_pixel_size или pango_layout_get_baseline .. фактически первая функция, которая должна иметь PangoLines и сохранять их в переменной Layout. В каждом коде, показанном в документации и примере, вы просто должны g_object_unref(layout) в конце... но все же... эти указатели, выделенные itemized_state_init (внутри pango_layout_get_pixel_size для ex), не освобождаются.
Я делаю что-то неправильно?
double posX = somevalue;
double posY = somevalue;
cairo_save (CurCairoState);
PangoLayout *layout = pango_cairo_create_layout (CurCairoState);
pango_layout_set_text (layout, text, -1);
pango_layout_set_font_description (layout, curCairoContext->font);
int width, height;
pango_layout_get_pixel_size (layout, &width, &height);
int b = (int)(pango_layout_get_baseline (layout) / PANGO_SCALE);
/* applying alignment attribute */
switch (curCairoContext->textAnchor) {
case GMiddle:
posX = posX - (width / 2.0);
break;
case GEnd:
posX = posX - width;
break;
}
cairo_move_to (CurCairoState, posX, posY - b);
pango_cairo_show_layout (CurCairoState, layout);
g_object_unref (layout);
cairo_restore (CurCairoState);
и результат выделения в инструменте
Спасибо за любой ответ!
РЕДАКТИРОВАТЬ: вот новый скриншот после использования G_SLICE= всегда-malloc G_DEBUG=gc-friendly. То, что висячие указатели стали утечками для "инструмента"
РЕДАКТИРОВАТЬ (решение не найдено):
Я скачал исходники pango-1.40.3, скомпилировал его и установил его с моими собственными маркерами, и я не понимаю, почему у меня есть эти висячие указатели на MacOS, потому что я прохожу: pango_layout_finalize и pango_layout_clear_lines и layout- > ref_count = 0, когда я вызываю g_obejct_unref (layout)