if (NS_FAILED(res)) goto reduceArray;
if (NS_FAILED(res)) { #if 1 printf(" get charset info QI failed %d %x", aIndex, res); #endif goto reduceArray; }
nsCharsetConverterManager::GetICharsetConverterInfo(ConverterInfo * aArray,                                                    PRInt32 aIndex,                                                    PRInt32 * aSize){  nsresult res;  nsIFactory * factory;  nsICharsetConverterInfo * info;  res=nsComponentManager::FindFactory(*(aArray[aIndex].mCID), &factory);  if (NS_FAILED(res)) goto reduceArray;  res=factory->QueryInterface(kICharsetConverterInfoIID, (void ** )&info);  NS_RELEASE(factory);  if (NS_FAILED(res)) goto reduceArray;  return info;reduceArray:  PRInt32 i;  (*aSize)--;  for (i=aIndex; i<*aSize;) aArray[i] = aArray[i++];  if (i>=0) {    aArray[i].mCharset = NULL;    aArray[i].mCID = NULL;  }  return NULL;}