Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1102)

Unified Diff: third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp

Issue 2066253002: Fix Refcount in FontDataCache for objects from FontFallbackIterator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp
diff --git a/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp b/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp
index 71d18519bf0aaf8ac392055961946fcd542fb61d..2840a61a4330ecf81b1610978817d38652cd573d 100644
--- a/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp
+++ b/third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp
@@ -134,7 +134,7 @@ const SimpleFontData* FontFallbackList::determinePrimarySimpleFontData(const Fon
if (fontData->isSegmented()) {
const SegmentedFontData* segmented = toSegmentedFontData(fontData);
for (unsigned i = 0; i < segmented->numFaces(); i++) {
- const SimpleFontData* rangeFontData = segmented->faceAt(i).fontData();
+ const SimpleFontData* rangeFontData = segmented->faceAt(i)->fontData();
if (!rangeFontData->isLoadingFallback())
return rangeFontData;
}
@@ -195,8 +195,11 @@ FallbackListCompositeKey FontFallbackList::compositeKey(const FontDescription& f
if (FontPlatformData* platformData = FontCache::fontCache()->getFontPlatformData(fontDescription, params))
result = FontCache::fontCache()->fontDataFromFontPlatformData(platformData);
}
- if (result)
+ if (result) {
key.add(fontDescription.cacheKey(params));
+ if (!result->isSegmented() && !result->isCustomFont())
+ FontCache::fontCache()->releaseFontData(toSimpleFontData(result));
+ }
}
currentFamily = currentFamily->next();
}

Powered by Google App Engine
This is Rietveld 408576698