<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - regression in cairo_surface_t refcounting when using cairo_surface_unmap_image"
href="https://bugs.freedesktop.org/show_bug.cgi?id=56981#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - regression in cairo_surface_t refcounting when using cairo_surface_unmap_image"
href="https://bugs.freedesktop.org/show_bug.cgi?id=56981">bug 56981</a>
from <span class="vcard"><a class="email" href="mailto:psychon@znc.in" title="Uli Schlachter <psychon@znc.in>"> <span class="fn">Uli Schlachter</span></a>
</span></b>
<pre>Oh, that was easy. cairo_surface_unmap_image() finishes the image surface. This
does the following in _cairo_image_surface_finish():
cairo_surface_destroy (surface->parent);
However, that extra reference was never taken. Possible fixes are:
- Add a call to cairo_surface_reference() in _cairo_image_surface_set_parent()
[This might possibly fix a similar bug in cairo-win32, however, no clue how
that parent-magic in cairo-win32 works exactly]
- Add that call in _cairo_image_surface_clone_subimage()
- Revert the faulty commit and go back to set_user_data()
I'll let Chris decide about this since he might know how this is supposed to
work while I don't (and cairo-win32 is too much black magic for my taste).</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>