X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=libs%2Fbytestreamutils.h;h=69ec3755f9c0ca1da77eecc976f53f2d0f7d55d4;hb=c1f506c43ca6fbae42dd52be352a82dd7e11f9cd;hp=90a9048a61cd16b30a52ecdc3827b8567913686f;hpb=036f3f653150dc10d8dd998567f1d6d9a1ce57ee;p=xonotic%2Fnetradiant.git diff --git a/libs/bytestreamutils.h b/libs/bytestreamutils.h index 90a9048a..69ec3755 100644 --- a/libs/bytestreamutils.h +++ b/libs/bytestreamutils.h @@ -22,7 +22,9 @@ #if !defined( INCLUDED_BYTESTREAMUTILS_H ) #define INCLUDED_BYTESTREAMUTILS_H -#if defined( __GNUC__ ) +#include "globaldefs.h" + +#if GDEF_COMPILER_GNU #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 @@ -55,18 +57,20 @@ typedef unsigned int uint32_t; template inline void istream_read_little_endian( InputStreamType& istream, Type& value ){ - istream.read( reinterpret_cast( &value ), sizeof( Type ) ); -#if defined( __BIG_ENDIAN__ ) - std::reverse( reinterpret_cast( &value ), reinterpret_cast( &value ) + sizeof( Type ) ); -#endif + istream.read(reinterpret_cast( &value ), sizeof(Type)); + if (GDEF_ARCH_ENDIAN_BIG) { + std::reverse(reinterpret_cast( &value ), + reinterpret_cast( &value ) + sizeof(Type)); + } } template inline void istream_read_big_endian( InputStreamType& istream, Type& value ){ - istream.read( reinterpret_cast( &value ), sizeof( Type ) ); -#if !defined( __BIG_ENDIAN__ ) - std::reverse( reinterpret_cast( &value ), reinterpret_cast( &value ) + sizeof( Type ) ); -#endif + istream.read(reinterpret_cast( &value ), sizeof(Type)); + if (!GDEF_ARCH_ENDIAN_BIG) { + std::reverse(reinterpret_cast( &value ), + reinterpret_cast( &value ) + sizeof(Type)); + } } template