| Index: Source/core/html/RadioNodeList.cpp
|
| diff --git a/Source/core/html/RadioNodeList.cpp b/Source/core/html/RadioNodeList.cpp
|
| index 4fa03d407942a3219225a78ff77b31b1ae79fc34..03a90348f9308fb361eab33ecbb7138ff212f5bd 100644
|
| --- a/Source/core/html/RadioNodeList.cpp
|
| +++ b/Source/core/html/RadioNodeList.cpp
|
| @@ -38,7 +38,7 @@ namespace WebCore {
|
| using namespace HTMLNames;
|
|
|
| RadioNodeList::RadioNodeList(ContainerNode& rootNode, const AtomicString& name, CollectionType type)
|
| - : LiveNodeList(rootNode, type, InvalidateForFormControls, rootNode.hasTagName(formTag) ? NodeListIsRootedAtDocument : NodeListIsRootedAtNode)
|
| + : LiveNodeList(rootNode, type, InvalidateForFormControls, isHTMLFormElement(rootNode) ? NodeListIsRootedAtDocument : NodeListIsRootedAtNode)
|
| , m_name(name)
|
| , m_onlyMatchImgElements(type == RadioImgNodeListType)
|
| {
|
| @@ -50,15 +50,15 @@ RadioNodeList::~RadioNodeList()
|
| ownerNode().nodeLists()->removeCache(this, m_onlyMatchImgElements ? RadioImgNodeListType : RadioNodeListType, m_name);
|
| }
|
|
|
| -static inline HTMLInputElement* toRadioButtonInputElement(Node* node)
|
| +static inline HTMLInputElement* toRadioButtonInputElement(Node& node)
|
| {
|
| - ASSERT(node->isElementNode());
|
| - if (!node->hasTagName(inputTag))
|
| + ASSERT(node.isElementNode());
|
| + if (!isHTMLInputElement(node))
|
| return 0;
|
| - HTMLInputElement* inputElement = toHTMLInputElement(node);
|
| - if (!inputElement->isRadioButton() || inputElement->value().isEmpty())
|
| + HTMLInputElement& inputElement = toHTMLInputElement(node);
|
| + if (!inputElement.isRadioButton() || inputElement.value().isEmpty())
|
| return 0;
|
| - return inputElement;
|
| + return &inputElement;
|
| }
|
|
|
| String RadioNodeList::value() const
|
| @@ -67,7 +67,7 @@ String RadioNodeList::value() const
|
| return String();
|
| for (unsigned i = 0; i < length(); ++i) {
|
| Node* node = item(i);
|
| - const HTMLInputElement* inputElement = toRadioButtonInputElement(node);
|
| + const HTMLInputElement* inputElement = toRadioButtonInputElement(*node);
|
| if (!inputElement || !inputElement->checked())
|
| continue;
|
| return inputElement->value();
|
| @@ -81,7 +81,7 @@ void RadioNodeList::setValue(const String& value)
|
| return;
|
| for (unsigned i = 0; i < length(); ++i) {
|
| Node* node = item(i);
|
| - HTMLInputElement* inputElement = toRadioButtonInputElement(node);
|
| + HTMLInputElement* inputElement = toRadioButtonInputElement(*node);
|
| if (!inputElement || inputElement->value() != value)
|
| continue;
|
| inputElement->setChecked(true);
|
| @@ -92,8 +92,8 @@ void RadioNodeList::setValue(const String& value)
|
| bool RadioNodeList::checkElementMatchesRadioNodeListFilter(const Element& testElement) const
|
| {
|
| ASSERT(!m_onlyMatchImgElements);
|
| - ASSERT(testElement.hasTagName(objectTag) || testElement.isFormControlElement());
|
| - if (ownerNode().hasTagName(formTag)) {
|
| + ASSERT(isHTMLObjectElement(testElement) || testElement.isFormControlElement());
|
| + if (isHTMLFormElement(ownerNode())) {
|
| HTMLFormElement* formElement = toHTMLElement(testElement).formOwner();
|
| if (!formElement || formElement != ownerNode())
|
| return false;
|
| @@ -105,12 +105,12 @@ bool RadioNodeList::checkElementMatchesRadioNodeListFilter(const Element& testEl
|
| bool RadioNodeList::elementMatches(const Element& element) const
|
| {
|
| if (m_onlyMatchImgElements)
|
| - return element.hasTagName(imgTag);
|
| + return isHTMLImageElement(element);
|
|
|
| - if (!element.hasTagName(objectTag) && !element.isFormControlElement())
|
| + if (!isHTMLObjectElement(element) && !element.isFormControlElement())
|
| return false;
|
|
|
| - if (element.hasTagName(inputTag) && toHTMLInputElement(element).isImageButton())
|
| + if (isHTMLInputElement(element) && toHTMLInputElement(element).isImageButton())
|
| return false;
|
|
|
| return checkElementMatchesRadioNodeListFilter(element);
|
|
|