<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body><span class="vcard"><a href="page.cgi?id=describeuser.html&login=jadahl%40gmail.com" title="Jonas Ådahl <jadahl@gmail.com>"> <span class="fn">Jonas Ådahl</span></a>
</span> changed
<a class="bz_bug_link
bz_status_NEW "
title="NEW - wayland: Don't destroy cursor backing storage when the buffer is released"
href="https://bugzilla.gnome.org/show_bug.cgi?id=770952">bug 770952</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Attachment #334911 status</td>
<td>none
</td>
<td>reviewed
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - wayland: Don't destroy cursor backing storage when the buffer is released"
href="https://bugzilla.gnome.org/show_bug.cgi?id=770952#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - wayland: Don't destroy cursor backing storage when the buffer is released"
href="https://bugzilla.gnome.org/show_bug.cgi?id=770952">bug 770952</a>
from <span class="vcard"><a href="page.cgi?id=describeuser.html&login=jadahl%40gmail.com" title="Jonas Ådahl <jadahl@gmail.com>"> <span class="fn">Jonas Ådahl</span></a>
</span></b>
<pre>Review of <span class=""><a href="attachment.cgi?id=334911&action=diff" name="attach_334911" title="wayland: Don't destroy cursor backing storage when the buffer is released">attachment 334911</a> <a href="attachment.cgi?id=334911&action=edit" title="wayland: Don't destroy cursor backing storage when the buffer is released">[details]</a></span> <a href='review?bug=770952&attachment=334911'>[review]</a>:
I don't think this is the correct solution. Before this patch you could set the
cursor and get rid of your cairo_surface_t reference without any unexpected
side effects, since the wl_surface implicitly had a reference to the cairo
surface via the buffer release callback. With this applied, would we destroy
the cairo surface would the wl_buffer also be destroyed (see
gdk_wayland_cairo_surface_destroy()).
You write that the issue is a refcount underrun, did you investigate how the
ref count went wrong?
For reference, each time one wl_surface.attach(buffer); wl_surface.commit(), we
should receive one wl_buffer.release on the attached buffer. Do we
cairo_surface_reference() for each time we attach and commit?</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>