Changeset 177847 in webkit
- Timestamp:
- Jan 1, 2015 12:49:32 PM (9 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r177846 r177847 1 2015-01-01 Antti Koivisto <antti@apple.com> 2 3 Remove FontData::containsCharacters 4 https://bugs.webkit.org/show_bug.cgi?id=140026 5 6 Reviewed by Dan Bernstein. 7 8 This virtual function has no clients. 9 10 * platform/graphics/FontData.h: 11 * platform/graphics/SegmentedFontData.cpp: 12 (WebCore::SegmentedFontData::containsCharacter): Deleted. 13 (WebCore::SegmentedFontData::containsCharacters): Deleted. 14 * platform/graphics/SegmentedFontData.h: 15 * platform/graphics/SimpleFontData.h: 16 * platform/graphics/freetype/SimpleFontDataFreeType.cpp: 17 (WebCore::SimpleFontData::containsCharacters): Deleted. 18 * platform/graphics/ios/SimpleFontDataIOS.mm: 19 (WebCore::SimpleFontData::containsCharacters): Deleted. 20 * platform/graphics/mac/SimpleFontDataMac.mm: 21 (WebCore::SimpleFontData::containsCharacters): Deleted. 22 * platform/graphics/win/SimpleFontDataWin.cpp: 23 (WebCore::SimpleFontData::containsCharacters): Deleted. 24 1 25 2015-01-01 Darin Adler <darin@apple.com> 2 26 -
trunk/Source/WebCore/platform/graphics/FontData.h
r174558 r177847 49 49 50 50 virtual const SimpleFontData* fontDataForCharacter(UChar32) const = 0; 51 virtual bool containsCharacters(const UChar*, int length) const = 0;52 51 virtual bool isCustomFont() const = 0; 53 52 virtual bool isLoading() const = 0; -
trunk/Source/WebCore/platform/graphics/SegmentedFontData.cpp
r177637 r177847 49 49 } 50 50 51 bool SegmentedFontData::containsCharacter(UChar32 c) const52 {53 Vector<FontDataRange>::const_iterator end = m_ranges.end();54 for (Vector<FontDataRange>::const_iterator it = m_ranges.begin(); it != end; ++it) {55 if (c >= it->from() && c <= it->to())56 return true;57 }58 return false;59 }60 61 bool SegmentedFontData::containsCharacters(const UChar* characters, int length) const62 {63 UChar32 c;64 for (int i = 0; i < length; ) {65 U16_NEXT(characters, i, length, c)66 if (!containsCharacter(c))67 return false;68 }69 return true;70 }71 72 51 bool SegmentedFontData::isCustomFont() const 73 52 { -
trunk/Source/WebCore/platform/graphics/SegmentedFontData.h
r174558 r177847 71 71 72 72 virtual const SimpleFontData* fontDataForCharacter(UChar32) const; 73 virtual bool containsCharacters(const UChar*, int length) const;74 73 75 74 virtual bool isCustomFont() const; 76 75 virtual bool isLoading() const; 77 76 virtual bool isSegmented() const; 78 79 bool containsCharacter(UChar32) const;80 77 81 78 Vector<FontDataRange, 1> m_ranges; -
trunk/Source/WebCore/platform/graphics/SimpleFontData.h
r177737 r177847 167 167 168 168 virtual const SimpleFontData* fontDataForCharacter(UChar32) const override; 169 virtual bool containsCharacters(const UChar*, int length) const override;170 169 171 170 Glyph glyphForCharacter(UChar32) const; -
trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp
r177737 r177847 117 117 } 118 118 119 bool SimpleFontData::containsCharacters(const UChar* characters, int bufferLength) const120 {121 ASSERT(m_platformData.scaledFont());122 FT_Face face = cairo_ft_scaled_font_lock_face(m_platformData.scaledFont());123 if (!face)124 return false;125 126 UTF16UChar32Iterator iterator(characters, bufferLength);127 UChar32 character = iterator.next();128 while (character != iterator.end()) {129 if (!FcFreeTypeCharIndex(face, character)) {130 cairo_ft_scaled_font_unlock_face(m_platformData.scaledFont());131 return false;132 }133 character = iterator.next();134 }135 136 cairo_ft_scaled_font_unlock_face(m_platformData.scaledFont());137 return true;138 }139 140 119 void SimpleFontData::determinePitch() 141 120 { -
trunk/Source/WebCore/platform/graphics/ios/SimpleFontDataIOS.mm
r176298 r177847 168 168 } 169 169 170 bool SimpleFontData::containsCharacters(const UChar*, int) const171 {172 return false;173 }174 175 170 void SimpleFontData::determinePitch() 176 171 { -
trunk/Source/WebCore/platform/graphics/mac/SimpleFontDataMac.mm
r177737 r177847 322 322 return 0; 323 323 } 324 #endif // !PLATFORM(IOS)325 326 #if !PLATFORM(IOS)327 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const328 {329 NSString *string = [[NSString alloc] initWithCharactersNoCopy:const_cast<unichar*>(characters) length:length freeWhenDone:NO];330 NSCharacterSet *set = [[m_platformData.nsFont() coveredCharacterSet] invertedSet];331 bool result = set && [string rangeOfCharacterFromSet:set].location == NSNotFound;332 [string release];333 return result;334 }335 324 336 325 void SimpleFontData::determinePitch() -
trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp
r176298 r177847 140 140 } 141 141 142 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const143 {144 // FIXME: Support custom fonts.145 if (isCustomFont())146 return false;147 148 // FIXME: Microsoft documentation seems to imply that characters can be output using a given font and DC149 // merely by testing code page intersection. This seems suspect though. Can't a font only partially150 // cover a given code page?151 IMLangFontLinkType* langFontLink = fontCache().getFontLinkInterface();152 if (!langFontLink)153 return false;154 155 HWndDC dc(0);156 157 DWORD acpCodePages;158 if (FAILED(langFontLink->CodePageToCodePages(CP_ACP, &acpCodePages))) {159 WTFLogAlways("SimpleFontData::containsCharacters: Unable to convert to CP_ACP code page.");160 return false;161 }162 163 DWORD fontCodePages;164 if (FAILED(langFontLink->GetFontCodePages(dc, m_platformData.hfont(), &fontCodePages))) {165 WTFLogAlways("SimpleFontData::containsCharacters: Unable to find matching code page for specified font.");166 return false;167 }168 169 DWORD actualCodePages = 0;170 long numCharactersProcessed = 0;171 long offset = 0;172 while (offset < length) {173 if (FAILED(langFontLink->GetStrCodePages(characters, length, acpCodePages, &actualCodePages, &numCharactersProcessed)))174 return false;175 if ((actualCodePages & fontCodePages) == 0)176 return false;177 offset += numCharactersProcessed;178 }179 180 return true;181 }182 183 142 void SimpleFontData::determinePitch() 184 143 {
Note: See TracChangeset
for help on using the changeset viewer.