[cairo-bugs] [Bug 21706] zombie ft_font_face / ft_unscaled_font mutual referencing problems

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri May 15 13:39:40 PDT 2009


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





--- Comment #3 from Chris Wilson <chris at chris-wilson.co.uk>  2009-05-15 13:39:38 PST ---
I extended test/ft-font-create-for-face and was able to reproduce the leak but
not the potential crash. As the patch caused no other side effects, I've pushed
it to master:

commit 0238fe2cafea2e1ed19bb222117bd73ee6898d4d
Author: Karl Tomlinson <karlt+ at karlt.net>
Date:   Thu May 14 11:46:29 2009 +0100

    [ft] Resolve mutual referencing problems with zombie faces

I tried to find a test case to exercise:
_cairo_ft_font_face_create()
    if (font_face->unscaled == NULL) {
                /* Resurrect this "zombie" font_face (from
                 * _cairo_ft_font_face_destroy), switching its unscaled_font
                 * from owner to ownee. */
                font_face->unscaled = unscaled;
                _cairo_unscaled_font_reference (&unscaled->base);
                return &font_face->base;
    }
and
  if (unscaled->faces && unscaled->faces->unscaled == NULL) {
        /* This "zombie" font_face (from _cairo_ft_font_face_destroy)
         * is no longer needed. */
        assert (unscaled->from_face && unscaled->faces->next == NULL);
        cairo_font_face_destroy (&unscaled->faces->base);
        unscaled->faces = NULL;
    }
to no avail. Also I tried the test.html in the firefox bug report but saw no
evidence that it even tried to use cairo_ft_font_create_for_face() - which is
probably just user error on my part.

If you can identify a simple test case, or even trace, to reproduce the crash
that would be very useful. Thanks.


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