Title: [200963] trunk/Source/WebCore
Revision
200963
Author
cdu...@apple.com
Date
2016-05-16 13:24:52 -0700 (Mon, 16 May 2016)

Log Message

Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
https://bugs.webkit.org/show_bug.cgi?id=157747

Reviewed by Zalan Bujtas.

Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
instead of std::unique_ptr as it is more suited for this purpose.

* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollOffsetChangedViaPlatformWidget):
(WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
(WebCore::ScrollView::scrollTo):
* platform/ScrollView.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (200962 => 200963)


--- trunk/Source/WebCore/ChangeLog	2016-05-16 20:19:24 UTC (rev 200962)
+++ trunk/Source/WebCore/ChangeLog	2016-05-16 20:24:52 UTC (rev 200963)
@@ -1,3 +1,19 @@
+2016-05-16  Chris Dumez  <cdu...@apple.com>
+
+        Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
+        https://bugs.webkit.org/show_bug.cgi?id=157747
+
+        Reviewed by Zalan Bujtas.
+
+        Use WTF::Optional for ScrollView's m_deferredScrollDelta / m_deferredScrollOffsets
+        instead of std::unique_ptr as it is more suited for this purpose.
+
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::scrollOffsetChangedViaPlatformWidget):
+        (WebCore::ScrollView::handleDeferredScrollUpdateAfterContentSizeChange):
+        (WebCore::ScrollView::scrollTo):
+        * platform/ScrollView.h:
+
 2016-05-16  Zalan Bujtas  <za...@apple.com>
 
         containingBlockFor*Position functions should take the renderer instead of the parent.

Modified: trunk/Source/WebCore/platform/ScrollView.cpp (200962 => 200963)


--- trunk/Source/WebCore/platform/ScrollView.cpp	2016-05-16 20:19:24 UTC (rev 200962)
+++ trunk/Source/WebCore/platform/ScrollView.cpp	2016-05-16 20:24:52 UTC (rev 200963)
@@ -448,7 +448,7 @@
     // is not complete. Instead, defer the scroll event until the layout finishes.
     if (shouldDeferScrollUpdateAfterContentSizeChange()) {
         // We only care about the most recent scroll position change request
-        m_deferredScrollOffsets = std::make_unique<std::pair<ScrollOffset, ScrollOffset>>(std::make_pair(oldOffset, newOffset));
+        m_deferredScrollOffsets = std::make_pair(oldOffset, newOffset);
         return;
     }
 
@@ -465,12 +465,12 @@
     ASSERT(static_cast<bool>(m_deferredScrollDelta) != static_cast<bool>(m_deferredScrollOffsets));
 
     if (m_deferredScrollDelta)
-        completeUpdatesAfterScrollTo(*m_deferredScrollDelta);
+        completeUpdatesAfterScrollTo(m_deferredScrollDelta.value());
     else if (m_deferredScrollOffsets)
-        scrollOffsetChangedViaPlatformWidgetImpl(m_deferredScrollOffsets->first, m_deferredScrollOffsets->second);
+        scrollOffsetChangedViaPlatformWidgetImpl(m_deferredScrollOffsets.value().first, m_deferredScrollOffsets.value().second);
     
-    m_deferredScrollDelta = nullptr;
-    m_deferredScrollOffsets = nullptr;
+    m_deferredScrollDelta = Nullopt;
+    m_deferredScrollOffsets = Nullopt;
 }
 
 void ScrollView::scrollTo(const ScrollPosition& newPosition)
@@ -496,7 +496,7 @@
     // is not complete. Instead, defer the scroll event until the layout finishes.
     if (shouldDeferScrollUpdateAfterContentSizeChange()) {
         ASSERT(!m_deferredScrollDelta);
-        m_deferredScrollDelta = std::make_unique<IntSize>(scrollDelta);
+        m_deferredScrollDelta = scrollDelta;
         return;
     }
 

Modified: trunk/Source/WebCore/platform/ScrollView.h (200962 => 200963)


--- trunk/Source/WebCore/platform/ScrollView.h	2016-05-16 20:19:24 UTC (rev 200962)
+++ trunk/Source/WebCore/platform/ScrollView.h	2016-05-16 20:24:52 UTC (rev 200963)
@@ -461,8 +461,8 @@
     IntSize m_fixedLayoutSize;
     IntSize m_contentsSize;
 
-    std::unique_ptr<IntSize> m_deferredScrollDelta; // Needed for WebKit scrolling
-    std::unique_ptr<std::pair<ScrollOffset, ScrollOffset>> m_deferredScrollOffsets; // Needed for platform widget scrolling
+    Optional<IntSize> m_deferredScrollDelta; // Needed for WebKit scrolling
+    Optional<std::pair<ScrollOffset, ScrollOffset>> m_deferredScrollOffsets; // Needed for platform widget scrolling
 
     bool m_scrollbarsSuppressed;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to