NS_RELEASE(gConverter);
NS_RELEASE(gFontSubConverter);
nsFontXlibSubstitute::Convert(const PRUnichar* aSrc, PRUint32 aSrcLen,                              PRUnichar* aDest, PRUint32 aDestLen){  nsresult res;  if (!gConverter) {    nsComponentManager::CreateInstance(kSaveAsCharsetCID, nsnull,                                       NS_GET_IID(nsISaveAsCharset),                                       (void**) &gConverter);    if (gConverter) {      res = gConverter->Init("ISO-88591-1",                             nsISaveAsCharset::attr_FallbackQuestionMark +                             nsISaveAsCharset::attr_EntityBeforeCharsetConv,                             nsIEntityConverter::transliterate);      if (NS_FAILED(res))        NS_RELEASE(gConverter);    }  }  if (gConverter) {    nsAutoString tmp(aSrc, aSrcLen);    char* conv = nsnull;    res = gConverter->Convert(tmp.get(), &conv);    if (NS_SUCCEEDED(res) && conv) {      char* p = conv;      PRUint32 i;      for (i = 0; i < aDestLen; i++) {        if (*p)          aDest[i] = *p;        else          break;        p++;      }      nsMemory::Free(conv);      conv = nsnull;      return i;    }  }  if (aSrcLen > aDestLen)    aSrcLen = aDestLen;  for (PRUint32 i = 0; i < aSrcLen; i++)    aDest[i] = '?';  return aSrcLen;}