Eric Ding created THRIFT-1973: --------------------------------- Summary: TCompactProtocol in C# lib does not serialize and deserialize negative int32 and int64 number correctly Key: THRIFT-1973 URL: https://issues.apache.org/jira/browse/THRIFT-1973 Project: Thrift Issue Type: Bug Components: C# - Library Affects Versions: 0.9, 1.0 Environment: Windows Reporter: Eric Ding Fix For: 1.0
longToZigzag and ZigzagToLong in TCompactProtocol does not perform corresponding operations to serialize and deserialize negative int32 and int64 number correctly. Purpose to change longToZigzag from (ulong)(((ulong)n << 1) ^ ((ulong)n >> 63)) to (ulong)(n << 1) ^ (ulong)(n >> 63). Will need to do same for intToZigZag. The reason is that we want arithmetic shift not logic shift. The test case in the project shows this, the output on server and client are different even though client received the same number back. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira