[cairo-bugs] [Bug 18862] New: cairo calls FT_Done_Face on FT_Faces for unscaled_fonts created from_face

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Dec 3 02:45:16 PST 2008


http://bugs.freedesktop.org/show_bug.cgi?id=18862

           Summary: cairo calls FT_Done_Face on FT_Faces for unscaled_fonts
                    created from_face
           Product: cairo
           Version: 1.9.1
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: critical
          Priority: medium
         Component: freetype font backend
        AssignedTo: david at freetype.org
        ReportedBy: bugs.freedesktop at karlt.net
         QAContact: cairo-bugs at cairographics.org
                CC: freedesktop at behdad.org


The FT_Faces on unscaled_fonts created from_face are not owned by cairo and
therefore must not be Done by cairo.

But the code in _cairo_ft_unscaled_font_lock_face

http://cgit.freedesktop.org/cairo/tree/src/cairo-ft-font.c?id=d1801c23fae3777c7c59e084894a3410f7a1f932#n564

and _has_unlocked_face

http://cgit.freedesktop.org/cairo/tree/src/cairo-ft-font.c?id=d1801c23fae3777c7c59e084894a3410f7a1f932#n527

makes no distinction.

(It looks like the bug may have been introduced when the from_face
unscaled_fonts were included in the ft_unscaled_font_map:

http://cgit.freedesktop.org/cairo/commit/?id=60cf2ef8449e1fd09fe0f2d8c8dc5fa2bb855e5a
)

This could be fixed either by testing unscaled->from_face in
_has_unlocked_face or by initializing lock_count = 1 for unscaled_fonts
from_face and appropriately modifying the assert in
_cairo_ft_unscaled_font_unlock_face.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the cairo-bugs mailing list