Changeset 187532 in webkit
- Timestamp:
- Jul 28, 2015 5:57:00 PM (9 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r187529 r187532 1 2015-07-28 Michael Catanzaro <mcatanzaro@igalia.com> 2 3 Minor cleanups in FontCacheFreeType.cpp 4 https://bugs.webkit.org/show_bug.cgi?id=147392 5 6 Reviewed by Martin Robinson. 7 8 Mark several functions as static (file-scope), use more nullptr, and use more smart 9 pointers. No behavior changes. 10 11 * platform/graphics/freetype/FcUniquePtr.h: 12 (WebCore::FcPtrDeleter<FcCharSet>::operator()): 13 * platform/graphics/freetype/FontCacheFreeType.cpp: 14 (WebCore::createFontConfigPatternForCharacters): 15 (WebCore::findBestFontGivenFallbacks): 16 (WebCore::FontCache::systemFallbackForCharacters): 17 (WebCore::fontWeightToFontconfigWeight): 18 (WebCore::FontCache::createFontPlatformData): 19 1 20 2015-07-28 Yusuke Suzuki <utatane.tea@gmail.com> 2 21 -
trunk/Source/WebCore/platform/graphics/freetype/FcUniquePtr.h
r187527 r187532 42 42 using FcUniquePtr = std::unique_ptr<T, FcPtrDeleter<T>>; 43 43 44 template<> struct FcPtrDeleter<FcCharSet> { 45 void operator()(FcCharSet* ptr) const 46 { 47 FcCharSetDestroy(ptr); 48 } 49 }; 50 44 51 template<> struct FcPtrDeleter<FcFontSet> { 45 52 void operator()(FcFontSet* ptr) const -
trunk/Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp
r187527 r187532 42 42 } 43 43 44 FcPattern*createFontConfigPatternForCharacters(const UChar* characters, int bufferLength)45 { 46 FcPattern* pattern = FcPatternCreate();47 Fc CharSet* fontConfigCharSet = FcCharSetCreate();44 static RefPtr<FcPattern> createFontConfigPatternForCharacters(const UChar* characters, int bufferLength) 45 { 46 RefPtr<FcPattern> pattern = adoptRef(FcPatternCreate()); 47 FcUniquePtr<FcCharSet> fontConfigCharSet(FcCharSetCreate()); 48 48 49 49 UTF16UChar32Iterator iterator(characters, bufferLength); 50 50 UChar32 character = iterator.next(); 51 51 while (character != iterator.end()) { 52 FcCharSetAddChar(fontConfigCharSet , character);52 FcCharSetAddChar(fontConfigCharSet.get(), character); 53 53 character = iterator.next(); 54 54 } 55 55 56 FcPatternAddCharSet(pattern, FC_CHARSET, fontConfigCharSet); 57 FcCharSetDestroy(fontConfigCharSet); 58 59 FcPatternAddBool(pattern, FC_SCALABLE, FcTrue); 60 FcConfigSubstitute(0, pattern, FcMatchPattern); 61 FcDefaultSubstitute(pattern); 56 FcPatternAddCharSet(pattern.get(), FC_CHARSET, fontConfigCharSet.get()); 57 58 FcPatternAddBool(pattern.get(), FC_SCALABLE, FcTrue); 59 FcConfigSubstitute(nullptr, pattern.get(), FcMatchPattern); 60 FcDefaultSubstitute(pattern.get()); 62 61 return pattern; 63 62 } 64 63 65 FcPattern*findBestFontGivenFallbacks(const FontPlatformData& fontData, FcPattern* pattern)64 static RefPtr<FcPattern> findBestFontGivenFallbacks(const FontPlatformData& fontData, FcPattern* pattern) 66 65 { 67 66 if (!fontData.m_pattern) 68 return 0;67 return nullptr; 69 68 70 69 if (!fontData.m_fallbacks) { 71 70 FcResult fontConfigResult; 72 fontData.m_fallbacks = FcFontSort( 0, fontData.m_pattern.get(), FcTrue, 0, &fontConfigResult);71 fontData.m_fallbacks = FcFontSort(nullptr, fontData.m_pattern.get(), FcTrue, nullptr, &fontConfigResult); 73 72 } 74 73 75 74 if (!fontData.m_fallbacks) 76 return 0;75 return nullptr; 77 76 78 77 FcFontSet* sets[] = { fontData.m_fallbacks }; 79 78 FcResult fontConfigResult; 80 return FcFontSetMatch( 0, sets, 1, pattern, &fontConfigResult);79 return FcFontSetMatch(nullptr, sets, 1, pattern, &fontConfigResult); 81 80 } 82 81 83 82 RefPtr<Font> FontCache::systemFallbackForCharacters(const FontDescription& description, const Font* originalFontData, bool, const UChar* characters, unsigned length) 84 83 { 85 RefPtr<FcPattern> pattern = adoptRef(createFontConfigPatternForCharacters(characters, length));84 RefPtr<FcPattern> pattern = createFontConfigPatternForCharacters(characters, length); 86 85 const FontPlatformData& fontData = originalFontData->platformData(); 87 86 88 RefPtr<FcPattern> fallbackPattern = adoptRef(findBestFontGivenFallbacks(fontData, pattern.get()));87 RefPtr<FcPattern> fallbackPattern = findBestFontGivenFallbacks(fontData, pattern.get()); 89 88 if (fallbackPattern) { 90 89 FontPlatformData alternateFontData(fallbackPattern.get(), description); … … 93 92 94 93 FcResult fontConfigResult; 95 RefPtr<FcPattern> resultPattern = adoptRef(FcFontMatch( 0, pattern.get(), &fontConfigResult));94 RefPtr<FcPattern> resultPattern = adoptRef(FcFontMatch(nullptr, pattern.get(), &fontConfigResult)); 96 95 if (!resultPattern) 97 return 0;96 return nullptr; 98 97 FontPlatformData alternateFontData(resultPattern.get(), description); 99 98 return fontForPlatformData(alternateFontData); … … 139 138 } 140 139 141 int fontWeightToFontconfigWeight(FontWeight weight)140 static int fontWeightToFontconfigWeight(FontWeight weight) 142 141 { 143 142 switch (weight) { … … 300 299 } 301 300 302 303 301 std::unique_ptr<FontPlatformData> FontCache::createFontPlatformData(const FontDescription& fontDescription, const AtomicString& family) 304 302 { … … 333 331 // configuration step, before any matching occurs, we allow arbitrary family substitutions, 334 332 // since this is an exact matter of respecting the user's font configuration. 335 FcConfigSubstitute( 0, pattern.get(), FcMatchPattern);333 FcConfigSubstitute(nullptr, pattern.get(), FcMatchPattern); 336 334 FcDefaultSubstitute(pattern.get()); 337 335 … … 341 339 342 340 FcResult fontConfigResult; 343 RefPtr<FcPattern> resultPattern = adoptRef(FcFontMatch( 0, pattern.get(), &fontConfigResult));341 RefPtr<FcPattern> resultPattern = adoptRef(FcFontMatch(nullptr, pattern.get(), &fontConfigResult)); 344 342 if (!resultPattern) // No match. 345 343 return nullptr;
Note: See TracChangeset
for help on using the changeset viewer.