*aParser = nsnull; PRInt32 count = mParsers.Count(); if (0 < count--) { *aParser = mParsers[count]; NS_ADDREF(*aParser); mParsers.RemoveObjectAt(count); }
CSSLoaderImpl::GetParserFor(nsICSSStyleSheet* aSheet,                             nsICSSParser** aParser){  NS_PRECONDITION(aParser, "Null out param");  *aParser = nsnull;  if (!gParsers) {    gParsers = new nsCOMArray<nsICSSParser>;    if (!gParsers) {      return NS_ERROR_OUT_OF_MEMORY;    }  }  PRInt32 count = gParsers->Count();  if (0 < count--) {    *aParser = gParsers->ObjectAt(count);    NS_ADDREF(*aParser);    gParsers->RemoveObjectAt(count);  }  nsresult result = NS_OK;  if (! *aParser) {    result = NS_NewCSSParser(aParser);  }    if (*aParser) {    (*aParser)->SetCaseSensitive(mCaseSensitive);    (*aParser)->SetQuirkMode(mCompatMode == eCompatibility_NavQuirks);    if (aSheet) {      (*aParser)->SetStyleSheet(aSheet);    }    (*aParser)->SetChildLoader(this);  }  return result;}