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

Side by Side Diff: third_party/WebKit/Source/platform/fonts/mac/FontCacheMac.mm

Issue 1844223002: Literal AtomicString construction can rely on strlen optimization. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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, 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> 3 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com>
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 FontPlatformData alternateFont(substituteFont, platformData.size(), 179 FontPlatformData alternateFont(substituteFont, platformData.size(),
180 syntheticBold, 180 syntheticBold,
181 (traits & NSFontItalicTrait) && !(substituteFontTraits & NSFontItalicTra it), 181 (traits & NSFontItalicTrait) && !(substituteFontTraits & NSFontItalicTra it),
182 platformData.orientation()); 182 platformData.orientation());
183 183
184 return fontDataFromFontPlatformData(&alternateFont, DoNotRetain); 184 return fontDataFromFontPlatformData(&alternateFont, DoNotRetain);
185 } 185 }
186 186
187 PassRefPtr<SimpleFontData> FontCache::getLastResortFallbackFont(const FontDescri ption& fontDescription, ShouldRetain shouldRetain) 187 PassRefPtr<SimpleFontData> FontCache::getLastResortFallbackFont(const FontDescri ption& fontDescription, ShouldRetain shouldRetain)
188 { 188 {
189 DEFINE_STATIC_LOCAL(AtomicString, timesStr, ("Times", AtomicString::Construc tFromLiteral)); 189 DEFINE_STATIC_LOCAL(AtomicString, timesStr, ("Times"));
190 190
191 // FIXME: Would be even better to somehow get the user's default font here. For now we'll pick 191 // FIXME: Would be even better to somehow get the user's default font here. For now we'll pick
192 // the default that the user would get without changing any prefs. 192 // the default that the user would get without changing any prefs.
193 RefPtr<SimpleFontData> simpleFontData = getFontData(fontDescription, timesSt r, false, shouldRetain); 193 RefPtr<SimpleFontData> simpleFontData = getFontData(fontDescription, timesSt r, false, shouldRetain);
194 if (simpleFontData) 194 if (simpleFontData)
195 return simpleFontData.release(); 195 return simpleFontData.release();
196 196
197 // The Times fallback will almost always work, but in the highly unusual cas e where 197 // The Times fallback will almost always work, but in the highly unusual cas e where
198 // the user doesn't have it, we fall back on Lucida Grande because that's 198 // the user doesn't have it, we fall back on Lucida Grande because that's
199 // guaranteed to be there, according to Nathan Taylor. This is good enough 199 // guaranteed to be there, according to Nathan Taylor. This is good enough
200 // to avoid a crash at least. 200 // to avoid a crash at least.
201 DEFINE_STATIC_LOCAL(AtomicString, lucidaGrandeStr, ("Lucida Grande", AtomicS tring::ConstructFromLiteral)); 201 DEFINE_STATIC_LOCAL(AtomicString, lucidaGrandeStr, ("Lucida Grande"));
202 return getFontData(fontDescription, lucidaGrandeStr, false, shouldRetain); 202 return getFontData(fontDescription, lucidaGrandeStr, false, shouldRetain);
203 } 203 }
204 204
205 PassOwnPtr<FontPlatformData> FontCache::createFontPlatformData(const FontDescrip tion& fontDescription, 205 PassOwnPtr<FontPlatformData> FontCache::createFontPlatformData(const FontDescrip tion& fontDescription,
206 const FontFaceCreationParams& creationParams, float fontSize) 206 const FontFaceCreationParams& creationParams, float fontSize)
207 { 207 {
208 NSFontTraitMask traits = fontDescription.style() ? NSFontItalicTrait : 0; 208 NSFontTraitMask traits = fontDescription.style() ? NSFontItalicTrait : 0;
209 float size = fontSize; 209 float size = fontSize;
210 210
211 NSFont* nsFont = MatchNSFontFamily(creationParams.family(), traits, fontDesc ription.weight(), size); 211 NSFont* nsFont = MatchNSFontFamily(creationParams.family(), traits, fontDesc ription.weight(), size);
(...skipping 21 matching lines...) Expand all
233 // When loading fails, we do not want to use the returned FontPlatformData s ince it will not have 233 // When loading fails, we do not want to use the returned FontPlatformData s ince it will not have
234 // a valid SkTypeface. 234 // a valid SkTypeface.
235 OwnPtr<FontPlatformData> platformData = adoptPtr(new FontPlatformData(platfo rmFont, size, syntheticBold, syntheticItalic, fontDescription.orientation())); 235 OwnPtr<FontPlatformData> platformData = adoptPtr(new FontPlatformData(platfo rmFont, size, syntheticBold, syntheticItalic, fontDescription.orientation()));
236 if (!platformData->typeface()) { 236 if (!platformData->typeface()) {
237 return nullptr; 237 return nullptr;
238 } 238 }
239 return platformData.release(); 239 return platformData.release();
240 } 240 }
241 241
242 } // namespace blink 242 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698