On 3 October 2017 at 23:13, Alexander Shaduri <[email protected]> wrote:

> (although I'm not sure whether the "surface"
> variable leaks? The docs don't mention):
>
> cairo_surface_t* surface = gdk_cairo_surface_create_from_pixbuf(
>         pixbuf->gobj(), get_scale_factor(), get_window()->gobj());
> g_object_set(G_OBJECT(cell_renderer_pixbuf.gobj()), "surface", surface,
> NULL);
>

The create function returns an object with 1 reference, which you are
responsible to destroy(). You pass it to GtkCellRendererPixbuf, whic passes
the surface to gtk_image_definition_new_surface (cairo_surface_t *surface),
which refs the surface. So you need to drop the reference you had after
calling the latter, unless you want to keep the surface alive longer than
the CellRenderer does.
_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to