From 31b6ebad7ce84ac86055754d93eb60353485fe31 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Sat, 9 Feb 2013 17:21:15 -0500 Subject: [PATCH] Bug 839033 - HTMLProgressElement cleanup. r=mounir --- .../html/content/src/HTMLProgressElement.cpp | 62 ++++++++++--------- .../html/content/src/HTMLProgressElement.h | 25 +------- 2 files changed, 37 insertions(+), 50 deletions(-) diff --git a/content/html/content/src/HTMLProgressElement.cpp b/content/html/content/src/HTMLProgressElement.cpp index ef511f09d1ad..526d95e4044e 100644 --- a/content/html/content/src/HTMLProgressElement.cpp +++ b/content/html/content/src/HTMLProgressElement.cpp @@ -72,66 +72,72 @@ HTMLProgressElement::ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute, NS_IMETHODIMP HTMLProgressElement::GetValue(double* aValue) +{ + *aValue = Value(); + return NS_OK; +} + +double +HTMLProgressElement::Value() const { const nsAttrValue* attrValue = mAttrsAndChildren.GetAttr(nsGkAtoms::value); if (!attrValue || attrValue->Type() != nsAttrValue::eDoubleValue || attrValue->GetDoubleValue() < 0.0) { - *aValue = kDefaultValue; - return NS_OK; + return kDefaultValue; } - *aValue = attrValue->GetDoubleValue(); - - double max; - GetMax(&max); - - *aValue = std::min(*aValue, max); - - return NS_OK; + return std::min(attrValue->GetDoubleValue(), Max()); } NS_IMETHODIMP HTMLProgressElement::SetValue(double aValue) { - return SetDoubleAttr(nsGkAtoms::value, aValue); + ErrorResult rv; + SetValue(aValue, rv); + return rv.ErrorCode(); } NS_IMETHODIMP HTMLProgressElement::GetMax(double* aValue) +{ + *aValue = Max(); + return NS_OK; +} + +double +HTMLProgressElement::Max() const { const nsAttrValue* attrMax = mAttrsAndChildren.GetAttr(nsGkAtoms::max); - if (attrMax && attrMax->Type() == nsAttrValue::eDoubleValue && - attrMax->GetDoubleValue() > 0.0) { - *aValue = attrMax->GetDoubleValue(); - } else { - *aValue = kDefaultMax; + if (!attrMax || attrMax->Type() != nsAttrValue::eDoubleValue || + attrMax->GetDoubleValue() <= 0.0) { + return kDefaultMax; } - return NS_OK; + return attrMax->GetDoubleValue(); } NS_IMETHODIMP HTMLProgressElement::SetMax(double aValue) { - return SetDoubleAttr(nsGkAtoms::max, aValue); + ErrorResult rv; + SetMax(aValue, rv); + return rv.ErrorCode(); } NS_IMETHODIMP HTMLProgressElement::GetPosition(double* aPosition) +{ + *aPosition = Position(); +} + +double +HTMLProgressElement::Position() const { if (IsIndeterminate()) { - *aPosition = kIndeterminatePosition; - return NS_OK; + return kIndeterminatePosition; } - double value; - double max; - GetValue(&value); - GetMax(&max); - - *aPosition = value / max; - - return NS_OK; + return Value() / Max(); } bool diff --git a/content/html/content/src/HTMLProgressElement.h b/content/html/content/src/HTMLProgressElement.h index 074700561010..c5ee87a2b276 100644 --- a/content/html/content/src/HTMLProgressElement.h +++ b/content/html/content/src/HTMLProgressElement.h @@ -50,36 +50,17 @@ public: virtual nsIDOMNode* AsDOMNode() { return this; } // WebIDL - double Value() - { - double ret; - GetValue(&ret); - return ret; - } - + double Value() const; void SetValue(double aValue, ErrorResult& aRv) { aRv = SetDoubleAttr(nsGkAtoms::value, aValue); } - - double Max() - { - double ret; - GetMax(&ret); - return ret; - } - + double Max() const; void SetMax(double aValue, ErrorResult& aRv) { aRv = SetDoubleAttr(nsGkAtoms::max, aValue); } - - double Position() - { - double ret; - GetPosition(&ret); - return ret; - } + double Position() const; protected: virtual JSObject* WrapNode(JSContext* aCx, JSObject* aScope,