Вот тут возникает вопрос. Вроде в Cairo используется подсчет использований структур типа pattern и surface, т.е. когда он доходит до нуля, соотв. экземпляр структуры убивается. Надо ли после передачи cairo_pattern_t* в функцию делать cairo_pattern_destroy или нет? В одном месте в libgdiplus, где была попытка передать cairo_surface_t* после передачи как раз стоял cairo_surface_destroy. В других местах этого не было, но особо подробно я код не анализировал, наверняка сказать не могу.
Не возникнет ли у меня либо утечек памяти, либо, наоборот, сбоев, при использовании такой "пропатченой" libgdiplus?