[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Bug 458169] [@font-face] implement downloadable font support on Linux



Do not reply to this email.  You can add comments to this bug at
https://bugzilla.mozilla.org/show_bug.cgi?id=458169





--- Comment #16 from Karl Tomlinson (:karlt) <mozbugz karlt net>  2008-11-29 23:39:48 PST ---
>(In reply to comment #15)
> 2) Be more careful about shutdown order.  Some things will need to be shutdown
>    before _cairo_font_face_reset_static_data and some after.

This isn't a practical option with system-cairo.  cairo's cached font
structures can be released when other fonts are added through other users of
the library after gfxPlatform has shut down.

Another options:

4) Find out the FT_Library that cairo is using from the FT_Face from
   a cairo_ft_scaled_font_lock_face, and use that instead of using a
   separate FT_Library.

   There is some appeal in using the same FT_Library as cairo rather than
   having two identical FT_Librarys.  This approach would be making the
   assumption that cairo won't "Done" its FT_Library until
   cairo_debug_reset_static_data, but I can't think of a good reason why
   cairo might change its behavior to do this.

All these approaches except (4) are assuming that our callback function pointer
on the cairo font face will point to a function in a library that is still in
memory.

I was surprised to see that NS_ShutdownXPCOM_P() [including
nsNativeModuleLoader::UnloadLibraries()] doesn't actually seem to be unloading
XPCOM module libraries.  

If thebes (or necko) may be unloaded from memory, some other options are:

5) Force cairo to empty its holdover fonts (unreferenced fonts).  This would
   require creation and destruction of 256 cairo_scaled_fonts.

6) Modifying cairo to not holdover unreferenced fonts with external
   destroy_hooks.

-- 
Configure bugmail: https://bugzilla.mozilla.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]