SkGlyph* SkGlyphCache::allocateNewGlyph(PackedGlyphID packedGlyphID, MetricsType mtype) { fMemoryUsed += sizeof(SkGlyph); SkGlyph* glyphPtr; { SkGlyph glyph; glyph.initGlyphFromCombinedID(packedGlyphID); glyphPtr = fGlyphMap.set(glyph); } if (kJustAdvance_MetricsType == mtype) { fScalerContext->getAdvance(glyphPtr); } else { SkASSERT(kFull_MetricsType == mtype); fScalerContext->getMetrics(glyphPtr); } SkASSERT(glyphPtr->fID != SkGlyph::kImpossibleID); return glyphPtr; }