PRINTF("  ==> found '%s'\n", search->mFont->mName);
SearchCharSet(PLHashEntry* he, PRIntn i, void* arg){  nsFontCharSet* charSet = (nsFontCharSet*) he->value;  nsFontCharSetInfo* charSetInfo = charSet->mInfo;  PRUint32* map = charSetInfo->mMap;  nsFontSearch* search = (nsFontSearch*) arg;// XXX remove the if and endif lines after testing for a while -- erik#if 1  nsFontMetricsXP* m = search->mMetrics;#endif  PRUnichar c = search->mChar;#ifdef REALLY_NOISY_FONTS#ifdef DEBUG  printf("%s: searching for character c=0x%x (%d) '%c' in %s\n",         search->mFont ? search->mFont->mName : "(no-name)", c, c, c, charSetInfo->mCharSet);#endif#endif  if (charSetInfo->mCharSet) {    if (!map) {      map = (PRUint32*) PR_Calloc(2048, 4);      if (!map) {        return HT_ENUMERATE_NEXT;      }      charSetInfo->mMap = map;      SetUpFontCharSetInfo(charSetInfo);    }// XXX remove the else part after testing for a while -- erik#if 1    // CSS font-family bug fix     // Check if font has been requested from CSS font-family,     // if so ignore IS_REPRESENTABLE. It gets tested again     // in PickASizeAndLoad (), see comments there.    // if font has'nt been requested, we do a redundant test here for speed.    if (m->mFontsIndex >= m->mFontsCount) {       if (!IS_REPRESENTABLE(map, c)) {#ifdef REALLY_NOISY_FONTS#ifdef DEBUG         printf("  ==> character not representable, trying next character set\n");#endif#endif         return HT_ENUMERATE_NEXT;       }    }#else /* 1 */       if (!IS_REPRESENTABLE(map, c)) {         return HT_ENUMERATE_NEXT;       }#endif /* 1 */  }  TryCharSet(search, charSet);  if (search->mFont) {#ifdef REALLY_NOISY_FONTS#ifdef DEBUG    printf("  ==> found '%s'\n", search->mFont->mName);#endif#endif    return HT_ENUMERATE_STOP;  }  return HT_ENUMERATE_NEXT;}