Endianness is wrong if <endian.h> header is not available
---------------------------------------------------------
Key: THRIFT-773
URL: https://issues.apache.org/jira/browse/THRIFT-773
Project: Thrift
Issue Type: Bug
Components: Compiler (C++)
Affects Versions: 0.2
Reporter: Norman Casagrande
Attachments: protocol_endian.patch
TProtocol expects the header <endian.h> to be available, otherwise it relies on
<boost/config.hpp>, but
* boost/config does not define endianness, that's done by
<boost/detail/endian.hpp>
* even if it was, boost only defines the macro depending on the type (so either
BOOST_LITTLE_ENDIAN or BOOST_BIG_ENDIAN) and does not, as in <endian.h> set a
value.
As result, if <endian.h> is not available, the code always uses big endianness.
The simplest solution is to include the right header and define those values
using the information boost provides.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.