On Friday, February 19, 2016 at 3:56:34 PM UTC-8, Josh Haberman wrote:
>
> Thanks a lot for tracking this down. For reference, here it is in our bug 
> tracker: https://github.com/google/protobuf/issues/1243
>
> On Thursday, February 11, 2016 at 3:28:33 AM UTC-8, Ron Ben-Yosef wrote:
>>
>> Hi,
>>
>> I'm using the proto3 C++ library compiled in MSVC, and noticed some 
>> pretty strange behavior - using the JsonToBinaryString or 
>> JsonToBinaryStream functions, values in the upper half of the uint32 range 
>> get lost in the transition from JSON to binary.
>>
>> After some investigation, it seems the issue's root cause is in the 
>> MathUtil::Sign function (called from NumberConvertAndCheck, which is called 
>> from DataPiece::GenericConvert, which gets called 
>> from DataPiece::ToUint32...)
>>
>>
>>

Actually, there's a more basic problem here:  MathUtil::Sign should return 
1 or -1 (if the number is positive or negative, respectively), not value or 
-value.  This bug breaks the following conformance tests for C++ (the first 
two are broken for all languages because the C++ protobuf used by the 
conformance test can't parse a correct JSON response):

 JsonInput.Int32FieldMinFloatValue.JsonOutput
 JsonInput.Int32FieldMinValue.JsonOutput
 JsonInput.Int32FieldMinFloatValue.ProtobufOutput
 JsonInput.Int32FieldMinValue.ProtobufOutput


-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to