OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 Google Inc. All rights reserved. | 2 * Copyright (c) 2012 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 return &s_harfBuzzFaceCache; | 77 return &s_harfBuzzFaceCache; |
78 } | 78 } |
79 | 79 |
80 HarfBuzzFace::HarfBuzzFace(FontPlatformData* platformData, uint64_t uniqueID) | 80 HarfBuzzFace::HarfBuzzFace(FontPlatformData* platformData, uint64_t uniqueID) |
81 : m_platformData(platformData) | 81 : m_platformData(platformData) |
82 , m_uniqueID(uniqueID) | 82 , m_uniqueID(uniqueID) |
83 , m_scriptForVerticalText(HB_SCRIPT_INVALID) | 83 , m_scriptForVerticalText(HB_SCRIPT_INVALID) |
84 { | 84 { |
85 HarfBuzzFaceCache::AddResult result = harfBuzzFaceCache()->add(m_uniqueID, 0
); | 85 HarfBuzzFaceCache::AddResult result = harfBuzzFaceCache()->add(m_uniqueID, 0
); |
86 if (result.isNewEntry) | 86 if (result.isNewEntry) |
87 result.iterator->value = FaceCacheEntry::create(createFace()); | 87 result.storedValue->value = FaceCacheEntry::create(createFace()); |
88 result.iterator->value->ref(); | 88 result.storedValue->value->ref(); |
89 m_face = result.iterator->value->face(); | 89 m_face = result.storedValue->value->face(); |
90 m_glyphCacheForFaceCacheEntry = result.iterator->value->glyphCache(); | 90 m_glyphCacheForFaceCacheEntry = result.storedValue->value->glyphCache(); |
91 } | 91 } |
92 | 92 |
93 HarfBuzzFace::~HarfBuzzFace() | 93 HarfBuzzFace::~HarfBuzzFace() |
94 { | 94 { |
95 HarfBuzzFaceCache::iterator result = harfBuzzFaceCache()->find(m_uniqueID); | 95 HarfBuzzFaceCache::iterator result = harfBuzzFaceCache()->find(m_uniqueID); |
96 ASSERT_WITH_SECURITY_IMPLICATION(result != harfBuzzFaceCache()->end()); | 96 ASSERT_WITH_SECURITY_IMPLICATION(result != harfBuzzFaceCache()->end()); |
97 ASSERT(result.get()->value->refCount() > 1); | 97 ASSERT(result.get()->value->refCount() > 1); |
98 result.get()->value->deref(); | 98 result.get()->value->deref(); |
99 if (result.get()->value->refCount() == 1) | 99 if (result.get()->value->refCount() == 1) |
100 harfBuzzFaceCache()->remove(m_uniqueID); | 100 harfBuzzFaceCache()->remove(m_uniqueID); |
(...skipping 21 matching lines...) Expand all Loading... |
122 } | 122 } |
123 | 123 |
124 void HarfBuzzFace::setScriptForVerticalGlyphSubstitution(hb_buffer_t* buffer) | 124 void HarfBuzzFace::setScriptForVerticalGlyphSubstitution(hb_buffer_t* buffer) |
125 { | 125 { |
126 if (m_scriptForVerticalText == HB_SCRIPT_INVALID) | 126 if (m_scriptForVerticalText == HB_SCRIPT_INVALID) |
127 m_scriptForVerticalText = findScriptForVerticalGlyphSubstitution(m_face)
; | 127 m_scriptForVerticalText = findScriptForVerticalGlyphSubstitution(m_face)
; |
128 hb_buffer_set_script(buffer, m_scriptForVerticalText); | 128 hb_buffer_set_script(buffer, m_scriptForVerticalText); |
129 } | 129 } |
130 | 130 |
131 } // namespace WebCore | 131 } // namespace WebCore |
OLD | NEW |