nsCSSProperty aPropID, PRInt32& aChangeHint)
nsCSSProperty aPropID, nsChangeHint& aChangeHint)
PRBool CSSParserImpl::ParseCounterData(PRInt32& aErrorCode, nsCSSDeclaration* aDeclaration,                                       nsCSSProperty aPropID, PRInt32& aChangeHint){  nsString* ident = NextIdent(aErrorCode);  if (nsnull == ident) {    return PR_FALSE;  }  if (ident->EqualsIgnoreCase("none")) {    if (ExpectEndProperty(aErrorCode, PR_TRUE)) {      AppendValue(aDeclaration, aPropID, nsCSSValue(eCSSUnit_None), aChangeHint);      return PR_TRUE;    }    return PR_FALSE;  }  else if (ident->EqualsIgnoreCase("inherit")) {    if (ExpectEndProperty(aErrorCode, PR_TRUE)) {      AppendValue(aDeclaration, aPropID, nsCSSValue(eCSSUnit_Inherit), aChangeHint);      return PR_TRUE;    }    return PR_FALSE;  }  else if (ident->EqualsIgnoreCase("-moz-initial")) {    if (ExpectEndProperty(aErrorCode, PR_TRUE)) {      AppendValue(aDeclaration, aPropID, nsCSSValue(eCSSUnit_Initial), aChangeHint);      return PR_TRUE;    }    return PR_FALSE;  }  else {    nsCSSCounterData* dataHead = new nsCSSCounterData();    nsCSSCounterData* data = dataHead;    if (nsnull == data) {      aErrorCode = NS_ERROR_OUT_OF_MEMORY;      return PR_FALSE;    }    data->mCounter.SetStringValue(*ident, eCSSUnit_String);    while (nsnull != data) {      if (ExpectEndProperty(aErrorCode, PR_TRUE)) {        if (aChangeHint < nsCSSProps::kHintTable[aPropID]) {          aChangeHint = nsCSSProps::kHintTable[aPropID];        }        aErrorCode = aDeclaration->AppendStructValue(aPropID, dataHead);        return NS_SUCCEEDED(aErrorCode);      }      if (! GetToken(aErrorCode, PR_TRUE)) {        break;      }      if ((eCSSToken_Number == mToken.mType) && (mToken.mIntegerValid)) {        data->mValue.SetIntValue(mToken.mInteger, eCSSUnit_Integer);        if (ExpectEndProperty(aErrorCode, PR_TRUE)) {          if (aChangeHint < nsCSSProps::kHintTable[aPropID]) {            aChangeHint = nsCSSProps::kHintTable[aPropID];          }          aErrorCode = aDeclaration->AppendStructValue(aPropID, dataHead);          return NS_SUCCEEDED(aErrorCode);        }        if (! GetToken(aErrorCode, PR_TRUE)) {          break;        }      }      if (eCSSToken_Ident == mToken.mType) {        data->mNext = new nsCSSCounterData();        data = data->mNext;        if (nsnull != data) {          data->mCounter.SetStringValue(mToken.mIdent, eCSSUnit_String);        }        else {          aErrorCode = NS_ERROR_OUT_OF_MEMORY;        }      }      else {        break;      }    }    delete dataHead;  }  return PR_FALSE;}