| 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)
|
|
|