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

Unified Diff: Source/core/html/HTMLFormElement.cpp

Issue 270823004: Oilpan: Prepare to move FormAssociatedElement to Oilpan heap, part 2. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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
Index: Source/core/html/HTMLFormElement.cpp
diff --git a/Source/core/html/HTMLFormElement.cpp b/Source/core/html/HTMLFormElement.cpp
index b74f5da1e9ad76128771ef1f5bb2956cd9f72c7f..e671cba0f7b7a9351fa27fdaa76a394db49ad91e 100644
--- a/Source/core/html/HTMLFormElement.cpp
+++ b/Source/core/html/HTMLFormElement.cpp
@@ -91,6 +91,14 @@ HTMLFormElement::~HTMLFormElement()
#endif
}
+void HTMLFormElement::trace(Visitor* visitor)
+{
+#if ENABLE(OILPAN)
+ visitor->trace(m_associatedElements);
+#endif
+ HTMLElement::trace(visitor);
+}
+
bool HTMLFormElement::rendererIsNeeded(const RenderStyle& style)
{
if (!m_wasDemoted)
@@ -129,7 +137,7 @@ Node::InsertionNotificationRequest HTMLFormElement::insertedInto(ContainerNode*
}
template<class T>
-void notifyFormRemovedFromTree(const Vector<T*>& elements, Node& root)
+void notifyFormRemovedFromTree(const T& elements, Node& root)
{
size_t size = elements.size();
for (size_t i = 0; i < size; ++i)
@@ -144,10 +152,10 @@ void HTMLFormElement::removedFrom(ContainerNode* insertionPoint)
if (m_hasElementsAssociatedByParser) {
Node& root = highestAncestorOrSelf();
if (!m_associatedElementsAreDirty) {
- Vector<FormAssociatedElement*> elements(associatedElements());
+ FormAssociatedElement::List elements(associatedElements());
notifyFormRemovedFromTree(elements, root);
} else {
- Vector<FormAssociatedElement*> elements;
+ FormAssociatedElement::List elements;
collectAssociatedElements(insertionPoint->highestAncestorOrSelf(), elements);
notifyFormRemovedFromTree(elements, root);
collectAssociatedElements(root, elements);
@@ -183,7 +191,7 @@ void HTMLFormElement::handleLocalEvents(Event* event)
unsigned HTMLFormElement::length() const
{
- const Vector<FormAssociatedElement*>& elements = associatedElements();
+ const FormAssociatedElement::List& elements = associatedElements();
unsigned len = 0;
for (unsigned i = 0; i < elements.size(); ++i) {
if (elements[i]->isEnumeratable())
@@ -201,7 +209,7 @@ void HTMLFormElement::submitImplicitly(Event* event, bool fromImplicitSubmission
{
int submissionTriggerCount = 0;
bool seenDefaultButton = false;
- const Vector<FormAssociatedElement*>& elements = associatedElements();
+ const FormAssociatedElement::List& elements = associatedElements();
for (unsigned i = 0; i < elements.size(); ++i) {
FormAssociatedElement* formAssociatedElement = elements[i];
if (!formAssociatedElement->isFormControlElement())
@@ -245,7 +253,7 @@ bool HTMLFormElement::validateInteractively(Event* event)
if (submitElement && submitElement->formNoValidate())
return true;
- const Vector<FormAssociatedElement*>& elements = associatedElements();
+ const FormAssociatedElement::List& elements = associatedElements();
for (unsigned i = 0; i < elements.size(); ++i) {
if (elements[i]->isFormControlElement())
toHTMLFormControlElement(elements[i])->hideVisibleValidationMessage();
@@ -338,7 +346,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce
RefPtr<HTMLFormControlElement> firstSuccessfulSubmitButton;
bool needButtonActivation = activateSubmitButton; // do we need to activate a submit button?
- const Vector<FormAssociatedElement*>& elements = associatedElements();
+ const FormAssociatedElement::List& elements = associatedElements();
for (unsigned i = 0; i < elements.size(); ++i) {
FormAssociatedElement* associatedElement = elements[i];
if (!associatedElement->isFormControlElement())
@@ -416,7 +424,7 @@ void HTMLFormElement::reset()
return;
}
- const Vector<FormAssociatedElement*>& elements = associatedElements();
+ const FormAssociatedElement::List& elements = associatedElements();
for (unsigned i = 0; i < elements.size(); ++i) {
if (elements[i]->isFormControlElement())
toHTMLFormControlElement(elements[i])->reset();
@@ -536,7 +544,7 @@ PassRefPtr<HTMLCollection> HTMLFormElement::elements()
return ensureCachedHTMLCollection(FormControls);
}
-void HTMLFormElement::collectAssociatedElements(Node& root, Vector<FormAssociatedElement*>& elements) const
+void HTMLFormElement::collectAssociatedElements(Node& root, FormAssociatedElement::List& elements) const
{
elements.clear();
for (HTMLElement* element = Traversal<HTMLElement>::firstWithin(root); element; element = Traversal<HTMLElement>::next(*element)) {
@@ -554,7 +562,7 @@ void HTMLFormElement::collectAssociatedElements(Node& root, Vector<FormAssociate
// This function should be const conceptually. However we update some fields
// because of lazy evaluation.
-const Vector<FormAssociatedElement*>& HTMLFormElement::associatedElements() const
+const FormAssociatedElement::List& HTMLFormElement::associatedElements() const
{
if (!m_associatedElementsAreDirty)
return m_associatedElements;
@@ -628,7 +636,7 @@ bool HTMLFormElement::wasUserSubmitted() const
HTMLFormControlElement* HTMLFormElement::defaultButton() const
{
- const Vector<FormAssociatedElement*>& elements = associatedElements();
+ const FormAssociatedElement::List& elements = associatedElements();
for (unsigned i = 0; i < elements.size(); ++i) {
if (!elements[i]->isFormControlElement())
continue;
@@ -650,7 +658,7 @@ bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(WillBeHeapVector<R
RefPtr<HTMLFormElement> protector(this);
// Copy associatedElements because event handlers called from
// HTMLFormControlElement::checkValidity() might change associatedElements.
- const Vector<FormAssociatedElement*>& associatedElements = this->associatedElements();
+ const FormAssociatedElement::List& associatedElements = this->associatedElements();
WillBeHeapVector<RefPtrWillBeMember<FormAssociatedElement> > elements;
elements.reserveCapacity(associatedElements.size());
for (unsigned i = 0; i < associatedElements.size(); ++i)

Powered by Google App Engine
This is Rietveld 408576698