if (aString && 0 < aLength) { PRUnichar str[CHAR_BUFFER_SIZE]; PRUnichar* pstr = SubstituteChars(mDisplayUnicode, aString, aLength, str, CHAR_BUFFER_SIZE, &aLength); if (!pstr) return 0;
if (mIsForIgnorable) return 0; nsAutoChar16Buffer buffer; nsresult rv = SubstituteChars(PR_FALSE, aString, aLength, buffer, &aLength); if (NS_FAILED(rv) || !aLength) return 0;
nsFontWinSubstitute::GetWidth(HDC aDC, const PRUnichar* aString,  PRUint32 aLength){  if (aString && 0 < aLength) {    PRUnichar str[CHAR_BUFFER_SIZE];    PRUnichar* pstr = SubstituteChars(mDisplayUnicode,                             aString, aLength, str, CHAR_BUFFER_SIZE, &aLength);    if (!pstr) return 0;    SIZE size;    ::GetTextExtentPoint32W(aDC, pstr, aLength, &size);    if (pstr != str) {      delete[] pstr;    }    return size.cx;  }  return 0;}