Index: Source/core/html/HTMLKeygenElement.cpp |
diff --git a/Source/core/html/HTMLKeygenElement.cpp b/Source/core/html/HTMLKeygenElement.cpp |
index a1ba9662292ca6f099b379f91d460ef0e1de7298..548262c722bbb815831ff001a35553ac28bed892 100644 |
--- a/Source/core/html/HTMLKeygenElement.cpp |
+++ b/Source/core/html/HTMLKeygenElement.cpp |
@@ -45,9 +45,14 @@ using namespace HTMLNames; |
class KeygenSelectElement : public HTMLSelectElement { |
public: |
- static PassRefPtr<KeygenSelectElement> create(Document* document) |
+ static Result<KeygenSelectElement> create(Document* document) |
{ |
- return adoptRef(new KeygenSelectElement(document)); |
+ return adoptNode(new KeygenSelectElement(document)); |
+ } |
+ |
+ void acceptHeapVisitor(Visitor* visitor) const OVERRIDE |
+ { |
+ HTMLSelectElement::acceptHeapVisitor(visitor); |
} |
protected: |
@@ -61,7 +66,7 @@ protected: |
private: |
virtual PassRefPtr<Element> cloneElementWithoutAttributesAndChildren() |
{ |
- return create(document()); |
+ return create(document()).passRefPtr(); |
} |
}; |
@@ -75,7 +80,7 @@ inline HTMLKeygenElement::HTMLKeygenElement(const QualifiedName& tagName, Docume |
Vector<String> keys; |
getSupportedKeySizes(keys); |
- RefPtr<HTMLSelectElement> select = KeygenSelectElement::create(document); |
+ Handle<HTMLSelectElement> select = KeygenSelectElement::create(document); |
for (size_t i = 0; i < keys.size(); ++i) { |
RefPtr<HTMLOptionElement> option = HTMLOptionElement::create(document); |
select->appendChild(option, IGNORE_EXCEPTION); |
@@ -85,9 +90,9 @@ inline HTMLKeygenElement::HTMLKeygenElement(const QualifiedName& tagName, Docume |
ensureUserAgentShadowRoot()->appendChild(select, IGNORE_EXCEPTION); |
} |
-PassRefPtr<HTMLKeygenElement> HTMLKeygenElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form) |
+Result<HTMLKeygenElement> HTMLKeygenElement::create(const QualifiedName& tagName, Document* document, HTMLFormElement* form) |
{ |
- return adoptRef(new HTMLKeygenElement(tagName, document, form)); |
+ return adoptNode(new HTMLKeygenElement(tagName, document, form)); |
} |
void HTMLKeygenElement::parseAttribute(const QualifiedName& name, const AtomicString& value) |
@@ -120,7 +125,7 @@ const AtomicString& HTMLKeygenElement::formControlType() const |
void HTMLKeygenElement::reset() |
{ |
- static_cast<HTMLFormControlElement*>(shadowSelect())->reset(); |
+ Handle<HTMLFormControlElement>::cast(shadowSelect())->reset(); |
} |
bool HTMLKeygenElement::shouldSaveAndRestoreFormControlState() const |
@@ -128,10 +133,15 @@ bool HTMLKeygenElement::shouldSaveAndRestoreFormControlState() const |
return false; |
} |
-HTMLSelectElement* HTMLKeygenElement::shadowSelect() const |
+Result<HTMLSelectElement> HTMLKeygenElement::shadowSelect() const |
{ |
ShadowRoot* root = userAgentShadowRoot(); |
- return root ? toHTMLSelectElement(root->firstChild()) : 0; |
+ return root ? toHTMLSelectElement(root->firstChild()) : nullptr; |
+} |
+ |
+void HTMLKeygenElement::acceptHeapVisitor(Visitor* visitor) const |
+{ |
+ HTMLFormControlElementWithState::acceptHeapVisitor(visitor); |
} |
} // namespace |