THRIFT-1992: Fix TCompactProtocol compiler warnings
authorCarl Yeksigian <carl@apache.org>
Mon, 3 Jun 2013 17:46:51 +0000 (13:46 -0400)
committerCarl Yeksigian <carl@apache.org>
Mon, 3 Jun 2013 18:23:55 +0000 (14:23 -0400)
Client: cpp
Patch: Konrad Grochowski

lib/cpp/src/thrift/protocol/TCompactProtocol.tcc

index 79f1b6b..1d93cba 100644 (file)
@@ -641,12 +641,13 @@ uint32_t TCompactProtocolT<Transport_>::readDouble(double& dub) {
   BOOST_STATIC_ASSERT(sizeof(double) == sizeof(uint64_t));
   BOOST_STATIC_ASSERT(std::numeric_limits<double>::is_iec559);
 
-  uint64_t bits;
-  uint8_t b[8];
-  trans_->readAll(b, 8);
-  bits = *(uint64_t*)b;
-  bits = letohll(bits);
-  dub = bitwise_cast<double>(bits);
+  union {
+    uint64_t bits;
+    uint8_t b[8];
+  } u;
+  trans_->readAll(u.b, 8);
+  u.bits = letohll(u.bits);
+  dub = bitwise_cast<double>(u.bits);
   return 8;
 }