<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - cairo-perf-trace failure"
href="https://bugs.freedesktop.org/show_bug.cgi?id=73580#c19">Comment # 19</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - cairo-perf-trace failure"
href="https://bugs.freedesktop.org/show_bug.cgi?id=73580">bug 73580</a>
from <span class="vcard"><a class="email" href="mailto:emanuele.aina@collabora.com" title="Emanuele Aina <emanuele.aina@collabora.com>"> <span class="fn">Emanuele Aina</span></a>
</span></b>
<pre><span class="quote">> For example, inside cairo_surface_create_for_rectangle() there is a code
> fragment that is suspiciously similar to the one which was in the old
> version of cairo_surface_create_similar[_image]().
> Would this be the right fragment to abstract?
> (I think the concern that Bryce expressed on IRC might be related to this)</span >
Thanks, I'll have a look to see if I can find the right level of abstraction.
<span class="quote">> Even better, should we just use _emit_surface[_op]()?
> In some functions, a comment explains why _emit_surface should not be used
> (example: cairo_surface_mark_dirty() in trace.c), but the one which are
> involved in this bug do not say anything on this.</span >
A quite difficult to understand (for me) issue is that _emit_surface() is quite
different from what the highlighted functions do to print the indexing
information. In particular _emit_surface() seems to pop all the objects on the
stack until it reaches the target surface, which seems quite destructive, while
our functions all try different indexing strategies to pick the right surface
without altering the stack.</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>