On Wed, Jun 18, 2008 at 11:39:20AM -0700, Michael Vrable wrote: > I'm now seeing a crash with some PDFs in evince, and reverting this > patch fixes them. The error I'm seeing is > > evince: cairo-pattern.c:679: cairo_pattern_destroy: Assertion > `((*&(&pattern->ref_count)->ref_count) > 0)' failed. > > My guess is that reference counts are not being updated on > fill_pattern/stroke_pattern when they are temporarily changed; if the > Type3 font happens to explicitly set the color, then the reference > counts can be corrupted. > > Additionally, I believe it may be possible to have a Type3 font nested > inside another Type3 font, but using a single member variable to save > the old stroke color is not reentrant. > > Fortunately, calls to beginType3Char/endType3Char are already wrapped in > calls to saveState/restoreState, so we don't need to save and restore > the stroke color in the Cairo backend--that will happen automatically. > This allows the code to be simplified. > > We should still set the stroke pattern to the current fill pattern. Do > that, but with proper reference counting. > > Patch is attached.
Looks good to me. Can someone commit it? I haven't fixed my commit access otherwise I'd commit it myself. -Jeff _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
