if (!found) {   count = gGlyphTableList->AdditionalCount(); for (i = 0; i < count; i++) { glyphTable = gGlyphTableList->AdditionalTableAt(i); glyphTable->GetPrimaryFontName(fontName); if (fontName.EqualsIgnoreCase(aFamily)) { found = PR_TRUE; break; } } if (!found) {  glyphTable = gGlyphTableList->AddAdditionalGlyphTable(aFamily); if (!glyphTable) return PR_FALSE; } }   if (!context->mFontCount) {   PRInt32 startingIndex = gGlyphTableList->Count(PR_TRUE); if (context->mIsFontForParts) { NS_ASSERTION(nsGlyphTableList::gParts[context->mCharIndex] == -1, "remove duplicate property in mathfont.properties"); nsGlyphTableList::gParts[context->mCharIndex] = startingIndex; } else { NS_ASSERTION(nsGlyphTableList::gVariants[context->mCharIndex] == -1, "remove duplicate property in mathfont.properties"); nsGlyphTableList::gVariants[context->mCharIndex] = startingIndex; } }  gGlyphTableList->AppendTable(glyphTable); ++context->mFontCount;
PreferredFontEnumCallback(const nsString& aFamily, PRBool aGeneric, void *aData){  nsAutoString fontName;  PreferredFontEnumContext* context = (PreferredFontEnumContext*)aData;  PRInt32 count = gGlyphTableList->Count();  for (PRInt32 i = 0; i < count; i++) {    nsGlyphTable* glyphTable = gGlyphTableList->ElementAt(i);    glyphTable->GetPrimaryFontName(fontName);    if (fontName.EqualsIgnoreCase(aFamily)) {      // Add this table to the list of preferred extension tables for this char      if (!context->mFontCount) {         // this is the first font to be retained, remember        // the starting index where the first glyphTable was appended        if (context->mIsFontForParts) {          nsGlyphTableList::gParts[context->mCharIndex]             = gGlyphTableList->Count(PR_TRUE);        }        else {          nsGlyphTableList::gVariants[context->mCharIndex]            = gGlyphTableList->Count(PR_TRUE);        }      }      gGlyphTableList->AppendElement(glyphTable);      context->mFontCount++;      break;    }  }  return PR_TRUE; // don't stop}