2008-05-12 Alp Toker <alp@nuanti.com>
[WebKit-https.git] / WebCore / platform / graphics / FontCache.h
index e1a704b..e45fbbc 100644 (file)
@@ -29,6 +29,7 @@
 #ifndef FontCache_h
 #define FontCache_h
 
+#include <limits.h>
 #include <wtf/unicode/Unicode.h>
 
 #if PLATFORM(WIN)
@@ -50,8 +51,10 @@ class SimpleFontData;
 class FontCache {
 public:
     static const FontData* getFontData(const Font&, int& familyIndex, FontSelector*);
+    static void releaseFontData(const SimpleFontData*);
     
     // This method is implemented by the platform.
+    // FIXME: Font data returned by this method never go inactive because callers don't track and release them.
     static const SimpleFontData* getFontDataForCharacters(const Font&, const UChar* characters, int length);
     
     // Also implemented by the platform.
@@ -66,7 +69,11 @@ public:
     static FontPlatformData* getCachedFontPlatformData(const FontDescription&, const AtomicString& family, bool checkingAlternateName = false);
     static SimpleFontData* getCachedFontData(const FontPlatformData*);
     static FontPlatformData* getLastResortFallbackFont(const FontDescription&);
-    
+
+    static size_t fontDataCount();
+    static size_t inactiveFontDataCount();
+    static void purgeInactiveFontData(int count = INT_MAX);
+
 private:
     // These methods are implemented by each platform.
     static FontPlatformData* getSimilarFontPlatformData(const Font&);