nsFontCharSetXlibInfo* aCharSetInfo)
nsFontCharSetInfoXlib* aCharSetInfo)
NodeAddSize(nsFontStretchXlib* aStretch, int aSize, const char *aName,        nsFontCharSetXlibInfo* aCharSetInfo){  PRBool haveSize = PR_FALSE;  if (aStretch->mSizesCount) {    nsFontXlib** end = &aStretch->mSizes[aStretch->mSizesCount];    nsFontXlib** s;    for (s = aStretch->mSizes; s < end; s++) {      if ((*s)->mSize == aSize) {        haveSize = PR_TRUE;        break;      }    }  }  if (!haveSize) {    if (aStretch->mSizesCount == aStretch->mSizesAlloc) {      int newSize = 2 * (aStretch->mSizesAlloc ? aStretch->mSizesAlloc : 1);      nsFontXlib** newSizes = new nsFontXlib*[newSize];      if (!newSizes)        return PR_FALSE;      for (int j = aStretch->mSizesAlloc - 1; j >= 0; j--) {        newSizes[j] = aStretch->mSizes[j];      }      aStretch->mSizesAlloc = newSize;      delete [] aStretch->mSizes;      aStretch->mSizes = newSizes;    }    char* copy = PR_smprintf("%s", aName);    if (!copy) {      return PR_FALSE;    }    nsFontXlib* size = new nsFontXlibNormal();    if (!size) {      return PR_FALSE;    }    aStretch->mSizes[aStretch->mSizesCount++] = size;    size->mName           = copy;    // size->mFont is initialized in the constructor    size->mSize           = aSize;    size->mBaselineAdjust = 0;    size->mCCMap          = nsnull;    size->mCharSetInfo    = aCharSetInfo;  }  return PR_TRUE;}