nsVoidArray *pList = nsnull; scKey key;
nsVoidArray* pList;
StyleSetImpl::FindMatchingContext(nsIStyleContext *aStyleContextToMatch,                                   nsIStyleContext **aMatchingContext){  nsresult rv = NS_ERROR_FAILURE;  *aMatchingContext = nsnull;#ifdef USE_FAST_CACHE  nsVoidArray *pList = nsnull;  scKey key;  aStyleContextToMatch->GetStyleContextKey(key);  if (NS_SUCCEEDED(mStyleContextCache.GetContexts(key, &pList)) && pList) {    PRInt32 count = pList->Count();    PRInt32 i;    for (i=0; i<count;i++) {      nsIStyleContext *pContext = (nsIStyleContext *)pList->ElementAt(i);      if (pContext && pContext != aStyleContextToMatch) {        PRBool bMatches = PR_FALSE;        NS_ADDREF(pContext);        if (NS_SUCCEEDED(pContext->StyleDataMatches(aStyleContextToMatch, &bMatches)) &&             bMatches) {          *aMatchingContext = pContext;          rv = NS_OK;          break;        } else {          NS_RELEASE(pContext);        }      }    }  }#else // DONT USE_FAST_CACHE  PRInt32 count = mStyleContextCache.Count();  PRInt32 i;  for (i=0; i<count;i++) {    nsIStyleContext *pContext = (nsIStyleContext *)mStyleContextCache.ElementAt(i);    if (pContext && pContext != aStyleContextToMatch) {      PRBool bMatches = PR_FALSE;      NS_ADDREF(pContext);      if (NS_SUCCEEDED(pContext->StyleDataMatches(aStyleContextToMatch, &bMatches)) &&           bMatches) {        *aMatchingContext = pContext;        rv = NS_OK;        break;      } else {        NS_RELEASE(pContext);      }    }  }#endif // #ifdef USE_FAST_CACHE  return rv;}