On Mi, 2017-01-18 at 20:03 +0400, Marc-André Lureau wrote:
> +    surface = qemu_console_surface(con);
> +
> +    /* FIXME: async save with coroutine? it would have to copy or
> lock
> +     * the surface. */
> +    ppm_save(filename, surface, &err);
> +

No need to lock or copy.

ppm_save() uses the pixman image (surface->image) only anyway, so
changing it to accept a pixman image instead of the surface is easy.

pixman images are reference counted, so you can just grab a reference
using pixman_image_ref() and run with it, without risking it'll be
released underneath your feet, then unref when done.

cheers,
  Gerd


Reply via email to