Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(447)

Unified Diff: Source/core/dom/CheckedRadioButtons.cpp

Issue 19510005: [oilpan] Completely move HTMLFormControlElement's hierarchy to the managed heap Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/CheckedRadioButtons.h ('k') | Source/core/dom/ContainerNode.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/CheckedRadioButtons.cpp
diff --git a/Source/core/dom/CheckedRadioButtons.cpp b/Source/core/dom/CheckedRadioButtons.cpp
index c377b7a2988ba207f3f06055adce0856abc8cb23..4aa42dd6a7848283928185ebf69784f733b63936 100644
--- a/Source/core/dom/CheckedRadioButtons.cpp
+++ b/Source/core/dom/CheckedRadioButtons.cpp
@@ -32,20 +32,22 @@ public:
static PassOwnPtr<RadioButtonGroup> create();
bool isEmpty() const { return m_members.isEmpty(); }
bool isRequired() const { return m_requiredCount; }
- HTMLInputElement* checkedButton() const { return m_checkedButton; }
- void add(HTMLInputElement*);
- void updateCheckedState(HTMLInputElement*);
- void requiredAttributeChanged(HTMLInputElement*);
- void remove(HTMLInputElement*);
- bool contains(HTMLInputElement*) const;
+ Result<HTMLInputElement> checkedButton() const { return Handle<HTMLInputElement>(m_checkedButton); } // FIXME(oilpan): Remove Handle<>().
+ void add(Handle<HTMLInputElement>);
+ void updateCheckedState(Handle<HTMLInputElement>);
+ void requiredAttributeChanged(Handle<HTMLInputElement>);
+ void remove(Handle<HTMLInputElement>);
+ bool contains(Handle<HTMLInputElement>) const;
private:
RadioButtonGroup();
void setNeedsValidityCheckForAllButtons();
bool isValid() const;
- void setCheckedButton(HTMLInputElement*);
+ void setCheckedButton(Handle<HTMLInputElement>);
+ // FIXME(oilpan): This should be a weak hash set.
HashSet<HTMLInputElement*> m_members;
+ // FIXME(oilpan): This should be a weak handle.
HTMLInputElement* m_checkedButton;
size_t m_requiredCount;
};
@@ -66,20 +68,20 @@ inline bool RadioButtonGroup::isValid() const
return !isRequired() || m_checkedButton;
}
-void RadioButtonGroup::setCheckedButton(HTMLInputElement* button)
+void RadioButtonGroup::setCheckedButton(Handle<HTMLInputElement> button)
{
- HTMLInputElement* oldCheckedButton = m_checkedButton;
+ Handle<HTMLInputElement> oldCheckedButton = Handle<HTMLInputElement>(m_checkedButton); // FIXME(oilpan): Remove Handle<>().
if (oldCheckedButton == button)
return;
- m_checkedButton = button;
+ m_checkedButton = button.raw();
if (oldCheckedButton)
oldCheckedButton->setChecked(false);
}
-void RadioButtonGroup::add(HTMLInputElement* button)
+void RadioButtonGroup::add(Handle<HTMLInputElement> button)
{
ASSERT(button->isRadioButton());
- if (!m_members.add(button).isNewEntry)
+ if (!m_members.add(button.raw()).isNewEntry)
return;
bool groupWasValid = isValid();
if (button->isRequired())
@@ -97,25 +99,25 @@ void RadioButtonGroup::add(HTMLInputElement* button)
}
}
-void RadioButtonGroup::updateCheckedState(HTMLInputElement* button)
+void RadioButtonGroup::updateCheckedState(Handle<HTMLInputElement> button)
{
ASSERT(button->isRadioButton());
- ASSERT(m_members.contains(button));
+ ASSERT(m_members.contains(button.raw()));
bool wasValid = isValid();
if (button->checked())
setCheckedButton(button);
else {
- if (m_checkedButton == button)
+ if (m_checkedButton == button.raw())
m_checkedButton = 0;
}
if (wasValid != isValid())
setNeedsValidityCheckForAllButtons();
}
-void RadioButtonGroup::requiredAttributeChanged(HTMLInputElement* button)
+void RadioButtonGroup::requiredAttributeChanged(Handle<HTMLInputElement> button)
{
ASSERT(button->isRadioButton());
- ASSERT(m_members.contains(button));
+ ASSERT(m_members.contains(button.raw()));
bool wasValid = isValid();
if (button->isRequired())
++m_requiredCount;
@@ -127,10 +129,10 @@ void RadioButtonGroup::requiredAttributeChanged(HTMLInputElement* button)
setNeedsValidityCheckForAllButtons();
}
-void RadioButtonGroup::remove(HTMLInputElement* button)
+void RadioButtonGroup::remove(Handle<HTMLInputElement> button)
{
ASSERT(button->isRadioButton());
- HashSet<HTMLInputElement*>::iterator it = m_members.find(button);
+ HashSet<HTMLInputElement*>::iterator it = m_members.find(button.raw());
if (it == m_members.end())
return;
bool wasValid = isValid();
@@ -139,7 +141,7 @@ void RadioButtonGroup::remove(HTMLInputElement* button)
ASSERT(m_requiredCount);
--m_requiredCount;
}
- if (m_checkedButton == button)
+ if (m_checkedButton == button.raw())
m_checkedButton = 0;
if (m_members.isEmpty()) {
@@ -159,15 +161,15 @@ void RadioButtonGroup::setNeedsValidityCheckForAllButtons()
typedef HashSet<HTMLInputElement*>::const_iterator Iterator;
Iterator end = m_members.end();
for (Iterator it = m_members.begin(); it != end; ++it) {
- HTMLInputElement* button = *it;
+ Handle<HTMLInputElement> button = Handle<HTMLInputElement>(*it); // FIXME(oilpan): Remove Handle<>().
ASSERT(button->isRadioButton());
button->setNeedsValidityCheck();
}
}
-bool RadioButtonGroup::contains(HTMLInputElement* button) const
+bool RadioButtonGroup::contains(Handle<HTMLInputElement> button) const
{
- return m_members.contains(button);
+ return m_members.contains(button.raw());
}
// ----------------------------------------------------------------
@@ -183,7 +185,7 @@ CheckedRadioButtons::~CheckedRadioButtons()
{
}
-void CheckedRadioButtons::addButton(HTMLInputElement* element)
+void CheckedRadioButtons::addButton(Handle<HTMLInputElement> element)
{
ASSERT(element->isRadioButton());
if (element->name().isEmpty())
@@ -198,7 +200,7 @@ void CheckedRadioButtons::addButton(HTMLInputElement* element)
group->add(element);
}
-void CheckedRadioButtons::updateCheckedState(HTMLInputElement* element)
+void CheckedRadioButtons::updateCheckedState(Handle<HTMLInputElement> element)
{
ASSERT(element->isRadioButton());
if (element->name().isEmpty())
@@ -211,7 +213,7 @@ void CheckedRadioButtons::updateCheckedState(HTMLInputElement* element)
group->updateCheckedState(element);
}
-void CheckedRadioButtons::requiredAttributeChanged(HTMLInputElement* element)
+void CheckedRadioButtons::requiredAttributeChanged(Handle<HTMLInputElement> element)
{
ASSERT(element->isRadioButton());
if (element->name().isEmpty())
@@ -224,16 +226,16 @@ void CheckedRadioButtons::requiredAttributeChanged(HTMLInputElement* element)
group->requiredAttributeChanged(element);
}
-HTMLInputElement* CheckedRadioButtons::checkedButtonForGroup(const AtomicString& name) const
+Result<HTMLInputElement> CheckedRadioButtons::checkedButtonForGroup(const AtomicString& name) const
{
if (!m_nameToGroupMap)
- return 0;
+ return nullptr;
m_nameToGroupMap->checkConsistency();
RadioButtonGroup* group = m_nameToGroupMap->get(name.impl());
- return group ? group->checkedButton() : 0;
+ return group ? group->checkedButton() : nullptr;
}
-bool CheckedRadioButtons::isInRequiredGroup(HTMLInputElement* element) const
+bool CheckedRadioButtons::isInRequiredGroup(Handle<HTMLInputElement> element) const
{
ASSERT(element->isRadioButton());
if (element->name().isEmpty())
@@ -244,7 +246,7 @@ bool CheckedRadioButtons::isInRequiredGroup(HTMLInputElement* element) const
return group && group->isRequired() && group->contains(element);
}
-void CheckedRadioButtons::removeButton(HTMLInputElement* element)
+void CheckedRadioButtons::removeButton(Handle<HTMLInputElement> element)
{
ASSERT(element->isRadioButton());
if (element->name().isEmpty())
« no previous file with comments | « Source/core/dom/CheckedRadioButtons.h ('k') | Source/core/dom/ContainerNode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698