if ((!bounds->ascent) && (!bounds->descent)) {
if (bounds->ascent || bounds->descent) {
GetMapFor10646Font(XFontStruct* aFont){  PRUint32* map = (PRUint32*) PR_Calloc(2048, 4);  if (map) {    if (aFont->per_char) {      PRInt32 minByte1 = aFont->min_byte1;      PRInt32 maxByte1 = aFont->max_byte1;      PRInt32 minByte2 = aFont->min_char_or_byte2;      PRInt32 maxByte2 = aFont->max_char_or_byte2;      PRInt32 charsPerRow = maxByte2 - minByte2 + 1;      for (PRInt32 row = minByte1; row <= maxByte1; row++) {        PRInt32 offset = (((row - minByte1) * charsPerRow) - minByte2);        for (PRInt32 cell = minByte2; cell <= maxByte2; cell++) {          XCharStruct* bounds = &aFont->per_char[offset + cell];          if ((!bounds->ascent) && (!bounds->descent)) {            SET_REPRESENTABLE(map, (row << 8) | cell);          }        }      }    }    else {      // XXX look at glyph ranges property, if any      PR_Free(map);      map = nsnull;    }  }  return map;}