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

Side by Side Diff: third_party/WebKit/Source/platform/fonts/FontFallbackList.cpp

Issue 2807913002: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in platform/fonts (Closed)
Patch Set: Replace ASSERT, ASSERT_NOT_REACHED, and RELEASE_ASSERT in platform/fonts Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 if (m_fontSelector != fontSelector) 56 if (m_fontSelector != fontSelector)
57 m_fontSelector = fontSelector; 57 m_fontSelector = fontSelector;
58 m_fontSelectorVersion = m_fontSelector ? m_fontSelector->version() : 0; 58 m_fontSelectorVersion = m_fontSelector ? m_fontSelector->version() : 0;
59 m_generation = FontCache::fontCache()->generation(); 59 m_generation = FontCache::fontCache()->generation();
60 } 60 }
61 61
62 void FontFallbackList::releaseFontData() { 62 void FontFallbackList::releaseFontData() {
63 unsigned numFonts = m_fontList.size(); 63 unsigned numFonts = m_fontList.size();
64 for (unsigned i = 0; i < numFonts; ++i) { 64 for (unsigned i = 0; i < numFonts; ++i) {
65 if (!m_fontList[i]->isCustomFont()) { 65 if (!m_fontList[i]->isCustomFont()) {
66 ASSERT(!m_fontList[i]->isSegmented()); 66 DCHECK(!m_fontList[i]->isSegmented());
67 FontCache::fontCache()->releaseFontData(toSimpleFontData(m_fontList[i])); 67 FontCache::fontCache()->releaseFontData(toSimpleFontData(m_fontList[i]));
68 } 68 }
69 } 69 }
70 m_shapeCache.reset(); // Clear the weak pointer to the cache instance. 70 m_shapeCache.reset(); // Clear the weak pointer to the cache instance.
71 } 71 }
72 72
73 bool FontFallbackList::loadingCustomFonts() const { 73 bool FontFallbackList::loadingCustomFonts() const {
74 if (!m_hasLoadingFallback) 74 if (!m_hasLoadingFallback)
75 return false; 75 return false;
76 76
(...skipping 26 matching lines...) Expand all
103 if (!fontData) { 103 if (!fontData) {
104 // All fonts are custom fonts and are loading. Return the first FontData. 104 // All fonts are custom fonts and are loading. Return the first FontData.
105 fontData = fontDataAt(fontDescription, 0); 105 fontData = fontDataAt(fontDescription, 0);
106 if (fontData) 106 if (fontData)
107 return fontData->fontDataForCharacter(spaceCharacter); 107 return fontData->fontDataForCharacter(spaceCharacter);
108 108
109 SimpleFontData* lastResortFallback = 109 SimpleFontData* lastResortFallback =
110 FontCache::fontCache() 110 FontCache::fontCache()
111 ->getLastResortFallbackFont(fontDescription) 111 ->getLastResortFallbackFont(fontDescription)
112 .get(); 112 .get();
113 ASSERT(lastResortFallback); 113 DCHECK(lastResortFallback);
114 return lastResortFallback; 114 return lastResortFallback;
115 } 115 }
116 116
117 if (fontData->isSegmented() && 117 if (fontData->isSegmented() &&
118 !toSegmentedFontData(fontData)->containsCharacter(spaceCharacter)) 118 !toSegmentedFontData(fontData)->containsCharacter(spaceCharacter))
119 continue; 119 continue;
120 120
121 const SimpleFontData* fontDataForSpace = 121 const SimpleFontData* fontDataForSpace =
122 fontData->fontDataForCharacter(spaceCharacter); 122 fontData->fontDataForCharacter(spaceCharacter);
123 ASSERT(fontDataForSpace); 123 DCHECK(fontDataForSpace);
124 124
125 // When a custom font is loading, we should use the correct fallback font to 125 // When a custom font is loading, we should use the correct fallback font to
126 // layout the text. Here skip the temporary font for the loading custom 126 // layout the text. Here skip the temporary font for the loading custom
127 // font which may not act as the correct fallback font. 127 // font which may not act as the correct fallback font.
128 if (!fontDataForSpace->isLoadingFallback()) 128 if (!fontDataForSpace->isLoadingFallback())
129 return fontDataForSpace; 129 return fontDataForSpace;
130 130
131 if (fontData->isSegmented()) { 131 if (fontData->isSegmented()) {
132 const SegmentedFontData* segmented = toSegmentedFontData(fontData); 132 const SegmentedFontData* segmented = toSegmentedFontData(fontData);
133 for (unsigned i = 0; i < segmented->numFaces(); i++) { 133 for (unsigned i = 0; i < segmented->numFaces(); i++) {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 } 213 }
214 214
215 const FontData* FontFallbackList::fontDataAt( 215 const FontData* FontFallbackList::fontDataAt(
216 const FontDescription& fontDescription, 216 const FontDescription& fontDescription,
217 unsigned realizedFontIndex) const { 217 unsigned realizedFontIndex) const {
218 if (realizedFontIndex < m_fontList.size()) 218 if (realizedFontIndex < m_fontList.size())
219 return m_fontList[realizedFontIndex] 219 return m_fontList[realizedFontIndex]
220 .get(); // This fallback font is already in our list. 220 .get(); // This fallback font is already in our list.
221 221
222 // Make sure we're not passing in some crazy value here. 222 // Make sure we're not passing in some crazy value here.
223 ASSERT(realizedFontIndex == m_fontList.size()); 223 DCHECK_EQ(realizedFontIndex, m_fontList.size());
224 224
225 if (m_familyIndex == cAllFamiliesScanned) 225 if (m_familyIndex == cAllFamiliesScanned)
226 return 0; 226 return 0;
227 227
228 // Ask the font cache for the font data. 228 // Ask the font cache for the font data.
229 // We are obtaining this font for the first time. We keep track of the 229 // We are obtaining this font for the first time. We keep track of the
230 // families we've looked at before in |m_familyIndex|, so that we never scan 230 // families we've looked at before in |m_familyIndex|, so that we never scan
231 // the same spot in the list twice. getFontData will adjust our 231 // the same spot in the list twice. getFontData will adjust our
232 // |m_familyIndex| as it scans for the right font to make. 232 // |m_familyIndex| as it scans for the right font to make.
233 ASSERT(FontCache::fontCache()->generation() == m_generation); 233 DCHECK_EQ(FontCache::fontCache()->generation(), m_generation);
234 RefPtr<FontData> result = getFontData(fontDescription, m_familyIndex); 234 RefPtr<FontData> result = getFontData(fontDescription, m_familyIndex);
235 if (result) { 235 if (result) {
236 m_fontList.push_back(result); 236 m_fontList.push_back(result);
237 if (result->isLoadingFallback()) 237 if (result->isLoadingFallback())
238 m_hasLoadingFallback = true; 238 m_hasLoadingFallback = true;
239 } 239 }
240 return result.get(); 240 return result.get();
241 } 241 }
242 242
243 bool FontFallbackList::isValid() const { 243 bool FontFallbackList::isValid() const {
244 if (!m_fontSelector) 244 if (!m_fontSelector)
245 return m_fontSelectorVersion == 0; 245 return m_fontSelectorVersion == 0;
246 246
247 return m_fontSelector->version() == m_fontSelectorVersion; 247 return m_fontSelector->version() == m_fontSelectorVersion;
248 } 248 }
249 249
250 } // namespace blink 250 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698