[cairo] Possible bug in Win32 Printing Surface code?

Edward Zimmermann Edward.Zimmermann at cib.de
Thu Dec 12 03:49:27 PST 2013


           In
           _cairo_win32_printing_surface_show_glyphs

           if we are NOT using Windows' fonts

           1574
           1575         /* For non win32 fonts we need to check that each glyph has a
           1576          * path available. If a path is not available,
           1577          * _cairo_scaled_glyph_lookup() will return
           1578          * CAIRO_INT_STATUS_UNSUPPORTED and a fallback image will be
           1579          * used.
           1580          */
           1581         for (i = 0; i < num_glyphs; i++) {
           1582             status = _cairo_scaled_glyph_lookup (scaled_font,
           1583                                                  glyphs[i].index,
           1584                                                  CAIRO_SCALED_GLYPH_INFO_PATH,
           1585                                                  &scaled_glyph);
           1586             if (status)
           1587                 return status;
           1588         }
           1589


           What seems to be missing is
               _cairo_scaled_font_freeze_cache (&scaled_font->base);

           before the loop

           and

               _cairo_scaled_font_thaw_cache (&scaled_font->base);

           after.


           cairo_int_status_t
           _cairo_scaled_glyph_lookup

           expects (make that demands) that it had been frozen:

           2961     assert (scaled_font->cache_frozen);



           Or am I missing something????




_________________________________________________________________
Edward C. Zimmermann


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20131212/f3c19933/attachment.html>


More information about the cairo mailing list