Example #1
0
HarfBuzzFace::~HarfBuzzFace() {
  HarfBuzzFaceCache::iterator result = harfBuzzFaceCache()->find(m_uniqueID);
  ASSERT_WITH_SECURITY_IMPLICATION(result != harfBuzzFaceCache()->end());
  ASSERT(result.get()->value->refCount() > 1);
  result.get()->value->deref();
  if (result.get()->value->refCount() == 1)
    harfBuzzFaceCache()->remove(m_uniqueID);
}
Example #2
0
HarfBuzzFace::HarfBuzzFace(FontPlatformData* platformData, uint64_t uniqueID)
    : m_platformData(platformData)
    , m_uniqueID(uniqueID)
    , m_scriptForVerticalText(HB_SCRIPT_INVALID)
{
    HarfBuzzFaceCache::AddResult result = harfBuzzFaceCache()->add(m_uniqueID, nullptr);
    if (result.isNewEntry)
        result.storedValue->value = FaceCacheEntry::create(createFace());
    result.storedValue->value->ref();
    m_face = result.storedValue->value->face();
    m_glyphCacheForFaceCacheEntry = result.storedValue->value->glyphCache();
}