Thrift-1709:Warning "Bitwise-or operator used on a sign-extended operand; consider...
authorJake Farrell <jfarrell@apache.org>
Fri, 5 Oct 2012 00:38:11 +0000 (00:38 +0000)
committerJake Farrell <jfarrell@apache.org>
Fri, 5 Oct 2012 00:38:11 +0000 (00:38 +0000)
Client: csharp
Patch: Jens Geyer

Fixes warning at the byte shift operations due to a missing cast at the bitwise-or.

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1394338 13f79535-47bb-0310-9956-ffa450edef68

lib/csharp/src/Protocol/TBinaryProtocol.cs

index e6b69d6..53daa1d 100644 (file)
@@ -347,9 +347,16 @@ namespace Thrift.Protocol
                public override long ReadI64()
                {
                        ReadAll(i64in, 0, 8);
-                       return (long)(((long)(i64in[0] & 0xff) << 56) | ((long)(i64in[1] & 0xff) << 48) | ((long)(i64in[2] & 0xff) << 40) | ((long)(i64in[3] & 0xff) << 32) |
-                               ((long)(i64in[4] & 0xff) << 24) | ((long)(i64in[5] & 0xff) << 16) | ((long)(i64in[6] & 0xff) << 8) | ((long)(i64in[7] & 0xff)));
-               }
+            return (long)(
+                (ulong)((ulong)(i64in[0] & 0xff) << 56) |
+                (ulong)((ulong)(i64in[1] & 0xff) << 48) |
+                (ulong)((ulong)(i64in[2] & 0xff) << 40) |
+                (ulong)((ulong)(i64in[3] & 0xff) << 32) |
+                (ulong)((ulong)(i64in[4] & 0xff) << 24) |
+                (ulong)((ulong)(i64in[5] & 0xff) << 16) |
+                (ulong)((ulong)(i64in[6] & 0xff) << 8) |
+                (ulong)((ulong)(i64in[7] & 0xff)));
+        }
 
                public override double ReadDouble()
                {