Title: [125886] trunk/Source/WebCore
Revision
125886
Author
[email protected]
Date
2012-08-17 05:25:15 -0700 (Fri, 17 Aug 2012)

Log Message

Remove RefPtr from DateInputType::m_pickerElement
https://bugs.webkit.org/show_bug.cgi?id=94330

Reviewed by Kent Tamura.

To avoid reference cycles of RefPtr<Node>s, we want to remove
unnecessary RefPtr<Node>s. The rationale is describe in bug 94324.

DateInputType::m_pickerElement does not need to be a RefPtr<Node>,
because it is guaranteed to point to a shadow DOM tree of the DateInputType
node, which is guaranteed to exist in the subtree of the DateInputType node.

No tests. No change in behavior.

* html/DateInputType.cpp:
(WebCore::DateInputType::DateInputType):
(WebCore::DateInputType::createShadowSubtree):
(WebCore::DateInputType::destroyShadowSubtree):
* html/DateInputType.h:
(DateInputType):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (125885 => 125886)


--- trunk/Source/WebCore/ChangeLog	2012-08-17 12:23:18 UTC (rev 125885)
+++ trunk/Source/WebCore/ChangeLog	2012-08-17 12:25:15 UTC (rev 125886)
@@ -1,3 +1,26 @@
+2012-08-17  Kentaro Hara  <[email protected]>
+
+        Remove RefPtr from DateInputType::m_pickerElement
+        https://bugs.webkit.org/show_bug.cgi?id=94330
+
+        Reviewed by Kent Tamura.
+
+        To avoid reference cycles of RefPtr<Node>s, we want to remove
+        unnecessary RefPtr<Node>s. The rationale is describe in bug 94324.
+
+        DateInputType::m_pickerElement does not need to be a RefPtr<Node>,
+        because it is guaranteed to point to a shadow DOM tree of the DateInputType
+        node, which is guaranteed to exist in the subtree of the DateInputType node.
+
+        No tests. No change in behavior.
+
+        * html/DateInputType.cpp:
+        (WebCore::DateInputType::DateInputType):
+        (WebCore::DateInputType::createShadowSubtree):
+        (WebCore::DateInputType::destroyShadowSubtree):
+        * html/DateInputType.h:
+        (DateInputType):
+
 2012-08-17  Dan Carney  <[email protected]>
 
         Refactor away IsolatedWorld

Modified: trunk/Source/WebCore/html/DateInputType.cpp (125885 => 125886)


--- trunk/Source/WebCore/html/DateInputType.cpp	2012-08-17 12:23:18 UTC (rev 125885)
+++ trunk/Source/WebCore/html/DateInputType.cpp	2012-08-17 12:25:15 UTC (rev 125886)
@@ -51,6 +51,9 @@
 
 inline DateInputType::DateInputType(HTMLInputElement* element)
     : BaseDateAndTimeInputType(element)
+#if ENABLE(CALENDAR_PICKER)
+    , m_pickerElement(0)
+#endif
 {
 }
 
@@ -102,14 +105,15 @@
 void DateInputType::createShadowSubtree()
 {
     BaseDateAndTimeInputType::createShadowSubtree();
-    m_pickerElement = CalendarPickerElement::create(element()->document());
-    containerElement()->insertBefore(m_pickerElement.get(), innerBlockElement()->nextSibling(), ASSERT_NO_EXCEPTION);
+    RefPtr<CalendarPickerElement> pickerElement = CalendarPickerElement::create(element()->document());
+    m_pickerElement = pickerElement.get();
+    containerElement()->insertBefore(m_pickerElement, innerBlockElement()->nextSibling(), ASSERT_NO_EXCEPTION);
 }
 
 void DateInputType::destroyShadowSubtree()
 {
     TextFieldInputType::destroyShadowSubtree();
-    m_pickerElement.clear();
+    m_pickerElement = 0;
 }
 
 bool DateInputType::needsContainer() const

Modified: trunk/Source/WebCore/html/DateInputType.h (125885 => 125886)


--- trunk/Source/WebCore/html/DateInputType.h	2012-08-17 12:23:18 UTC (rev 125885)
+++ trunk/Source/WebCore/html/DateInputType.h	2012-08-17 12:25:15 UTC (rev 125886)
@@ -65,7 +65,7 @@
     virtual bool needsContainer() const OVERRIDE;
     virtual bool shouldHaveSpinButton() const OVERRIDE;
 
-    RefPtr<CalendarPickerElement> m_pickerElement;
+    CalendarPickerElement* m_pickerElement;
 #endif
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to