diff options
Diffstat (limited to 'WebCore/platform/graphics/FontCache.cpp')
-rw-r--r-- | WebCore/platform/graphics/FontCache.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/WebCore/platform/graphics/FontCache.cpp b/WebCore/platform/graphics/FontCache.cpp index d9b4b28..06ea56b 100644 --- a/WebCore/platform/graphics/FontCache.cpp +++ b/WebCore/platform/graphics/FontCache.cpp @@ -328,18 +328,20 @@ void FontCache::purgeInactiveFontData(int count) for (size_t i = 0; i < fontDataToDeleteCount; ++i) delete fontDataToDelete[i]; - Vector<FontPlatformDataCacheKey> keysToRemove; - keysToRemove.reserveInitialCapacity(gFontPlatformDataCache->size()); - FontPlatformDataCache::iterator platformDataEnd = gFontPlatformDataCache->end(); - for (FontPlatformDataCache::iterator platformData = gFontPlatformDataCache->begin(); platformData != platformDataEnd; ++platformData) { - if (platformData->second && !gFontDataCache->contains(*platformData->second)) - keysToRemove.append(platformData->first); + if (gFontPlatformDataCache) { + Vector<FontPlatformDataCacheKey> keysToRemove; + keysToRemove.reserveInitialCapacity(gFontPlatformDataCache->size()); + FontPlatformDataCache::iterator platformDataEnd = gFontPlatformDataCache->end(); + for (FontPlatformDataCache::iterator platformData = gFontPlatformDataCache->begin(); platformData != platformDataEnd; ++platformData) { + if (platformData->second && !gFontDataCache->contains(*platformData->second)) + keysToRemove.append(platformData->first); + } + + size_t keysToRemoveCount = keysToRemove.size(); + for (size_t i = 0; i < keysToRemoveCount; ++i) + delete gFontPlatformDataCache->take(keysToRemove[i]); } - size_t keysToRemoveCount = keysToRemove.size(); - for (size_t i = 0; i < keysToRemoveCount; ++i) - delete gFontPlatformDataCache->take(keysToRemove[i]); - isPurging = false; } |