<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#c18">Comment # 18</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:ranma42@gmail.com" title="Andrea Canciani <ranma42@gmail.com>"> <span class="fn">Andrea Canciani</span></a>
</span></b>
        <pre>(In reply to Emanuele Aina from <a href="show_bug.cgi?id=73580#c17">comment #17</a>)
<span class="quote">> > If possible, I would also try to find out (and document in a comment) why _emit_surface_op() should not be used in similar/similar-image.

> I honestly don't know, _emit_surface_op() calls into _emit_current() (by way
> of _emit_surface()) which seems to be willing to roll the stack up to the
> requested surface instead of using indexed addressing or even 'dup'.

> I'm not sufficiently intimate with the cairo interpreter stack machine to
> understand the two behaviours, but they seem quite different. :/</span >

TL;DR: Let's merge patches 1&2 and ask Chris if it is safe to use _emit_surface
;)

Each patch in the patchset is:
Tested-By: Andrea Canciani <<a href="mailto:ranma42@gmail.com">ranma42@gmail.com</a>>

I confirm that all of the patches work in my environment and in particular that
the first one fixes this bug.

The first 2 patches are
Reviewed-By: Andrea Canciani <<a href="mailto:ranma42@gmail.com">ranma42@gmail.com</a>>

The first patch fixes this bug, it is quite straightforward, provides a
complete explanation in the commit message and does not affect unrelated code

The second one tries to reduce code complexity by restoring the similarity
between two functions

Before merging the third one, I would try to get a more complete understanding
of the cairoscript generator...

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)

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.</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>