You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "David Reiss (JIRA)" <ji...@apache.org> on 2010/06/15 20:44:25 UTC
[jira] Commented: (THRIFT-773) Endianness is wrong if
header is not available
[ https://issues.apache.org/jira/browse/THRIFT-773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12879065#action_12879065 ]
David Reiss commented on THRIFT-773:
------------------------------------
Why not define __LITTLE_ENDIAN and __BIG_ENDIAN unconditionally since we are comparing against their values?
> 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.