mCCMap = gCharsetInfo[i].mCCMap; mCodePage = gCharsetInfo[i].mCodePage;
PRUint32* fontMap = aFont->mMap; for (int j = 0; j < 2048; j++) { mMap[j] = (charSetMap[j] & fontMap[j]); } mCodePage = gCharSetInfo[i].mCodePage;
nsFontSubset::Load(HDC aDC, nsFontMetricsWinA* aFontMetricsWinA, nsFontWinA* aFont){  LOGFONT* logFont = &aFont->mLogFont;  logFont->lfCharSet = mCharset;  // create a font handle without filling & overwriting what is in logFont  const nsFont* font;  aFontMetricsWinA->GetFont(font);  HFONT hfont = (font->sizeAdjust <= 0)     ? ::CreateFontIndirect(logFont)    : aFontMetricsWinA->CreateFontAdjustHandle(aDC, logFont);  if (hfont) {    int i = gCharsetToIndex[mCharset];    if (!gCharsetInfo[i].mCCMap)      gCharsetInfo[i].mCCMap = gCharsetInfo[i].GenerateMap(&gCharsetInfo[i]);    if (!gCharsetInfo[i].mCCMap) {      ::DeleteObject(hfont);      return 0;    }    mCCMap = gCharsetInfo[i].mCCMap;    mCodePage = gCharsetInfo[i].mCodePage;    mFont = hfont;    //XXX can we safely assume the same metrics for all subsets and remove this?    HFONT oldFont = (HFONT)::SelectObject(aDC, (HGDIOBJ)hfont);    aFontMetricsWinA->InitMetricsFor(aDC, this);    ::SelectObject(aDC, (HGDIOBJ)oldFont);    return 1;  }  return 0;}