DEBUG_PRINTF(("\n\ncharset = %s", atomToName(charset)));
NS_WARNING(nsPrintfCString("\n\ncharset = %s", atomToName(charset)).get());
SetUpFontCharSetInfo(nsFontCharSetInfo* aSelf){#ifdef DEBUG  static int checkedSelf = 0;  if (!checkedSelf) {    CheckSelf();    checkedSelf = 1;  }#endif  nsresult res;  nsCOMPtr<nsIAtom> charset = getter_AddRefs(NS_NewAtom(aSelf->mCharSet));  if (charset) {    nsIUnicodeEncoder* converter = nsnull;    res = gCharSetManager->GetUnicodeEncoder(charset, &converter);    if (NS_SUCCEEDED(res)) {      aSelf->mConverter = converter;      res = converter->SetOutputErrorBehavior(converter->kOnError_Replace,        nsnull, '?');      nsCOMPtr<nsICharRepresentable> mapper = do_QueryInterface(converter);      if (mapper) {        aSelf->mCCMap = MapperToCCMap(mapper);        if (aSelf->mCCMap) {          DEBUG_PRINTF(("\n\ncharset = %s", atomToName(charset)));            /*           * We used to disable special characters like smart quotes           * in CJK fonts because if they are quite a bit larger than           * western glyphs and we did not want glyph fill-in to use them           * in single byte documents.           *           * Now, single byte documents find these special chars before           * the CJK fonts are searched so this is no longer needed           * but is useful when trying to determine which font(s) the           * special chars are found in.           */          if ((aSelf->Convert == DoubleByteConvert)               && (!gAllowDoubleByteSpecialChars)) {            PRUint16* ccmap = aSelf->mCCMap;            for (int i=0; gDoubleByteSpecialChars[i]; i++) {              CCMAP_UNSET_CHAR(ccmap, gDoubleByteSpecialChars[i]);            }          }          return PR_TRUE;        }      }      else {        NS_WARNING("cannot get nsICharRepresentable");      }    }    else {      NS_WARNING("cannot get Unicode converter");    }  }  else {    NS_WARNING("cannot get atom");  }  //  // always try to return a map even if it is empty  //  nsCompressedCharMap empty_ccmapObj;  aSelf->mCCMap = empty_ccmapObj.NewCCMap();  // return false if unable to alloc a map  if (aSelf->mCCMap == nsnull)    return PR_FALSE;  return PR_TRUE;}