Unreviewed, revert TransformationMatrix::operator== change
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Aug 2018 04:24:11 +0000 (04:24 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Aug 2018 04:24:11 +0000 (04:24 +0000)
https://bugs.webkit.org/show_bug.cgi?id=188197

This change partially revert cleaning up of TransformationMatrix since memcmp does not
follow double comparison algorithm. So semantics was accidentally changed.

* platform/graphics/transforms/TransformationMatrix.h:
(WebCore::TransformationMatrix::operator== const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/transforms/TransformationMatrix.h

index 470d603..1b7f4a2 100644 (file)
@@ -1,5 +1,16 @@
 2018-08-01  Yusuke Suzuki  <utatane.tea@gmail.com>
 
+        Unreviewed, revert TransformationMatrix::operator== change
+        https://bugs.webkit.org/show_bug.cgi?id=188197
+
+        This change partially revert cleaning up of TransformationMatrix since memcmp does not
+        follow double comparison algorithm. So semantics was accidentally changed.
+
+        * platform/graphics/transforms/TransformationMatrix.h:
+        (WebCore::TransformationMatrix::operator== const):
+
+2018-08-01  Yusuke Suzuki  <utatane.tea@gmail.com>
+
         Unreviewed, rename TransformationMatrix::Identity to TransformationMatrix::identity
         https://bugs.webkit.org/show_bug.cgi?id=188204
 
index 27b07f3..575a1d4 100644 (file)
@@ -337,7 +337,22 @@ public:
 
     bool operator==(const TransformationMatrix& m2) const
     {
-        return memcmp(&m_matrix[0][0], &m2.m_matrix[0][0], sizeof(Matrix4)) == 0;
+        return (m_matrix[0][0] == m2.m_matrix[0][0] &&
+                m_matrix[0][1] == m2.m_matrix[0][1] &&
+                m_matrix[0][2] == m2.m_matrix[0][2] &&
+                m_matrix[0][3] == m2.m_matrix[0][3] &&
+                m_matrix[1][0] == m2.m_matrix[1][0] &&
+                m_matrix[1][1] == m2.m_matrix[1][1] &&
+                m_matrix[1][2] == m2.m_matrix[1][2] &&
+                m_matrix[1][3] == m2.m_matrix[1][3] &&
+                m_matrix[2][0] == m2.m_matrix[2][0] &&
+                m_matrix[2][1] == m2.m_matrix[2][1] &&
+                m_matrix[2][2] == m2.m_matrix[2][2] &&
+                m_matrix[2][3] == m2.m_matrix[2][3] &&
+                m_matrix[3][0] == m2.m_matrix[3][0] &&
+                m_matrix[3][1] == m2.m_matrix[3][1] &&
+                m_matrix[3][2] == m2.m_matrix[3][2] &&
+                m_matrix[3][3] == m2.m_matrix[3][3]);
     }
 
     bool operator!=(const TransformationMatrix& other) const { return !(*this == other); }