Title: [228089] trunk
Revision
228089
Author
ab...@igalia.com
Date
2018-02-05 01:14:09 -0800 (Mon, 05 Feb 2018)

Log Message

Fix bug in MediaTime comparison for negative values with different scale.
https://bugs.webkit.org/show_bug.cgi?id=182433

Source/WTF:

Reviewed by Xabier Rodriguez-Calvar.

* wtf/MediaTime.cpp:
(WTF::MediaTime::compare const):

Tools:

Improved test coverage for MediaTime::compare().

Reviewed by Xabier Rodriguez-Calvar.

* TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST):

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (228088 => 228089)


--- trunk/Source/WTF/ChangeLog	2018-02-05 09:02:24 UTC (rev 228088)
+++ trunk/Source/WTF/ChangeLog	2018-02-05 09:14:09 UTC (rev 228089)
@@ -1,3 +1,13 @@
+2018-02-05  Alicia Boya García  <ab...@igalia.com>
+
+        Fix bug in MediaTime comparison for negative values with different scale.
+        https://bugs.webkit.org/show_bug.cgi?id=182433
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * wtf/MediaTime.cpp:
+        (WTF::MediaTime::compare const):
+
 2018-02-02  Mark Lam  <mark....@apple.com>
 
         More ARM64_32 fixes.

Modified: trunk/Source/WTF/wtf/MediaTime.cpp (228088 => 228089)


--- trunk/Source/WTF/wtf/MediaTime.cpp	2018-02-05 09:02:24 UTC (rev 228088)
+++ trunk/Source/WTF/wtf/MediaTime.cpp	2018-02-05 09:14:09 UTC (rev 228089)
@@ -391,12 +391,20 @@
     if (m_timeValue == rhs.m_timeValue)
         return m_timeScale < rhs.m_timeScale ? GreaterThan : LessThan;
 
-    if (m_timeValue < rhs.m_timeValue && m_timeScale > rhs.m_timeScale)
-        return LessThan;
+    if (m_timeValue >= 0) {
+        if (m_timeValue < rhs.m_timeValue && m_timeScale > rhs.m_timeScale)
+            return LessThan;
 
-    if (m_timeValue > rhs.m_timeValue && m_timeScale < rhs.m_timeScale)
-        return GreaterThan;
+        if (m_timeValue > rhs.m_timeValue && m_timeScale < rhs.m_timeScale)
+            return GreaterThan;
+    } else {
+        if (m_timeValue < rhs.m_timeValue && m_timeScale < rhs.m_timeScale)
+            return LessThan;
 
+        if (m_timeValue > rhs.m_timeValue && m_timeScale > rhs.m_timeScale)
+            return GreaterThan;
+    }
+
     int64_t lhsFactor;
     int64_t rhsFactor;
     if (safeMultiply(m_timeValue, static_cast<int64_t>(rhs.m_timeScale), lhsFactor)

Modified: trunk/Tools/ChangeLog (228088 => 228089)


--- trunk/Tools/ChangeLog	2018-02-05 09:02:24 UTC (rev 228088)
+++ trunk/Tools/ChangeLog	2018-02-05 09:14:09 UTC (rev 228089)
@@ -1,3 +1,15 @@
+2018-02-05  Alicia Boya García  <ab...@igalia.com>
+
+        Fix bug in MediaTime comparison for negative values with different scale.
+        https://bugs.webkit.org/show_bug.cgi?id=182433
+
+        Improved test coverage for MediaTime::compare().
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * TestWebKitAPI/Tests/WTF/MediaTime.cpp:
+        (TestWebKitAPI::TEST):
+
 2018-02-05  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [SOUP] WebSockets must use system proxy settings

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp (228088 => 228089)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp	2018-02-05 09:02:24 UTC (rev 228088)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp	2018-02-05 09:14:09 UTC (rev 228089)
@@ -85,6 +85,12 @@
     EXPECT_EQ(MediaTime(1, 1) != MediaTime(2, 1), true);
     EXPECT_EQ(MediaTime(2, 1) == MediaTime(2, 1), true);
     EXPECT_EQ(MediaTime(2, 1) == MediaTime(4, 2), true);
+    EXPECT_EQ(MediaTime(-2, 1) < MediaTime(-1, 1), true);
+    EXPECT_EQ(MediaTime(-2, 1) <= MediaTime(-1, 1), true);
+    EXPECT_EQ(MediaTime(-1, 1) < MediaTime(-2, 1), false);
+    EXPECT_EQ(MediaTime(-1, 1) < MediaTime(2, 1), true);
+    EXPECT_EQ(MediaTime(1, 1) > MediaTime(-2, 1), true);
+    EXPECT_EQ(MediaTime(-8, 10) >= MediaTime(-1, 1), true);
     EXPECT_TRUE((bool)MediaTime(1, 1));
     EXPECT_TRUE(!MediaTime(0, 1));
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to