res = gConverter->Convert(tmp.GetUnicode(), &conv);
res = gConverter->Convert(tmp.get(), &conv);
nsFontXpSubstitute::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.GetUnicode(), &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;}