bitwise_cast infinite loops if called from the default constructor in ToType
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Sep 2016 19:39:02 +0000 (19:39 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 2 Sep 2016 19:39:02 +0000 (19:39 +0000)
https://bugs.webkit.org/show_bug.cgi?id=161365

Patch by JF Bastien <jfbastien@apple.com> on 2016-09-02
Reviewed by Saam Barati.

* wtf/StdLibExtras.h:
(WTF::bitwise_cast): use aggregate initialization to avoid ctor

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

Source/WTF/ChangeLog
Source/WTF/wtf/StdLibExtras.h

index 1559846..db8f1d1 100644 (file)
@@ -1,3 +1,13 @@
+2016-09-02  JF Bastien  <jfbastien@apple.com>
+
+        bitwise_cast infinite loops if called from the default constructor in ToType
+        https://bugs.webkit.org/show_bug.cgi?id=161365
+
+        Reviewed by Saam Barati.
+
+        * wtf/StdLibExtras.h:
+        (WTF::bitwise_cast): use aggregate initialization to avoid ctor
+
 2016-09-01  Anders Carlsson  <andersca@apple.com>
 
         Use BlockPtr::fromCallable in WorkQueue::dispatch and WorkQueue::dispatchAfter
index 30de593..14ab381 100644 (file)
@@ -151,7 +151,7 @@ inline ToType bitwise_cast(FromType from)
     static_assert(__is_trivially_copyable(ToType), "bitwise_cast of non-trivially-copyable type!");
     static_assert(__is_trivially_copyable(FromType), "bitwise_cast of non-trivially-copyable type!");
 #endif
-    ToType to;
+    ToType to{ };
     std::memcpy(&to, &from, sizeof(to));
     return to;
 }