X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMultiPlayer%2Ftiny_xdr.cxx;h=b0c57d3a7413bc0596f2f6460c104497fe89dbed;hb=5889a7148b492411430a7f3a76ae7847e0096ff7;hp=38e178409e837afade776199bd12ca559effbd4e;hpb=b716c6d15b7a6e2e0c957ec6640c08c6d9706daa;p=flightgear.git diff --git a/src/MultiPlayer/tiny_xdr.cxx b/src/MultiPlayer/tiny_xdr.cxx index 38e178409..b0c57d3a7 100644 --- a/src/MultiPlayer/tiny_xdr.cxx +++ b/src/MultiPlayer/tiny_xdr.cxx @@ -11,7 +11,10 @@ // ////////////////////////////////////////////////////////////////////// +#include + #include +#include #include "tiny_xdr.hxx" @@ -122,42 +125,49 @@ XDR_decode_uint64 ( const xdr_data2_t & n_Val ) xdr_data_t XDR_encode_float ( const float & f_Val ) { - xdr_data_t* tmp; + union { + xdr_data_t x; + float f; + } tmp; - tmp = (xdr_data_t*) &f_Val; - return (XDR_encode_int32 (*tmp)); + tmp.f = f_Val; + return (XDR_encode_int32 (tmp.x)); } float XDR_decode_float ( const xdr_data_t & f_Val ) { - float* tmp; - static xdr_data_t dummy; + union { + xdr_data_t x; + float f; + } tmp; - dummy = XDR_decode_int32 (f_Val); - tmp = (float*) &dummy; - return (*tmp); + tmp.x = XDR_decode_int32 (f_Val); + return tmp.f; } /* double */ xdr_data2_t XDR_encode_double ( const double & d_Val ) { - xdr_data2_t* tmp; + union { + xdr_data2_t x; + double d; + } tmp; - tmp = (xdr_data2_t*) &d_Val; - return (XDR_encode_int64 (*tmp)); + tmp.d = d_Val; + return (XDR_encode_int64 (tmp.x)); } double XDR_decode_double ( const xdr_data2_t & d_Val ) { - double* tmp; - static xdr_data2_t dummy; + union { + xdr_data2_t x; + double d; + } tmp; - dummy = XDR_decode_int64 (d_Val); - tmp = (double*) &dummy; - return (*tmp); + tmp.x = XDR_decode_int64 (d_Val); + return tmp.d; } -