[cairo-bugs] [Bug 61876] Regression since 1.11.4: Corrupt drawing on mingw64 build used with virt-viewer 0.5.5 binaries

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Mar 9 14:38:42 PST 2013


--- Comment #2 from Uli Schlachter <psychon at znc.in> ---
(In reply to comment #0)
> Unfortunately, I was unable to do a git bisect between them due to hitting
> several compilation issues.

Do you happen to have the final range of possible-faulty commits around? Did
you use "git bisect skip" to "work around" those compile issues?

(In reply to comment #1)
> The SpiceGtk widget is a GtkDrawingArea that is
> gtk_widget_set_double_buffered(), whose expose event uses a
> gdk_cairo_create() context and drawn with spicex_draw_event():
> http://cgit.freedesktop.org/spice/spice-gtk/tree/gtk/spice-widget-cairo.c

You have a reference leak in spicex_image_destroy(). You have to call
cairo_surface_destroy() even when you call cairo_surface_finish(). The latter
function doesn't drop any references.

Since this mentions DLLs and mingw64: The problem should be in cairo-windows,
right? The image surface used as d->ximage contains the correct data?

Now that I have written this question: Do you call cairo_surface_mark_dirty() /
cairo_surface_mark_dirty_rectangle() / cairo_surface_flush() where needed?
You could try inserting a call to cairo_surface_mark_dirty(d->ximage) at the
beginning of spicex_draw_event() and see if it helps (but of course this is not
a fix, the code which messes with the image data should mark it dirty instead)

You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo-bugs/attachments/20130309/d48424de/attachment.html>

More information about the cairo-bugs mailing list