<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - [pdftocairo] Wrong result after convertion"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=91931#c11">Comment # 11</a>
              on <a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - [pdftocairo] Wrong result after convertion"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=91931">bug 91931</a>
              from <span class="vcard"><a class="email" href="mailto:jason@aquaticape.us" title="Jason Crain <jason@aquaticape.us>"> <span class="fn">Jason Crain</span></a>
</span></b>
        <pre>Created <span class=""><a href="attachment.cgi?id=120648" name="attach_120648" title="use shape mask with soft mask">attachment 120648</a> <a href="attachment.cgi?id=120648&action=edit" title="use shape mask with soft mask">[details]</a></span> <a href='page.cgi?id=splinter.html&bug=91931&attachment=120648'>[review]</a>
use shape mask with soft mask

The problem is that the code doesn't handle the case where both the soft mask
and a knockout subgroup's shape are set.  The 'shape' pattern doesn't get
destroyed when painting the subgroup so it sticks around and changes the
rendering of the parent knockout group.

This patch moves some code around so the shape is cleared both when using and
not using a soft mask.  The shape is propagated up to any higher level groups
and the pattern is destroyed after being used.

Also fixes a memory leak I found while testing. 
CairoOutputDev::beginTransparencyGroup calls cairo_reference(cairo_shape) but
it's not matched by a cairo_destroy.  This removes the cairo_reference call
because we already keep track of cairo_shape's lifetime with knockoutCount.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>