Loading src/os/object/xdrinput.cc +12 −4 Original line number Diff line number Diff line Loading @@ -37,14 +37,22 @@ int64_t XDRInput::get_int64() float XDRInput::get_float() { uint32_t val = get_uint32(); return *(float*)&val; union { uint32_t i; float f; } v; v.i = get_uint32(); return v.f; } double XDRInput::get_double() { uint64_t val = get_uint64(); return *(double*)&val; union { uint64_t i; double d; } v; v.i = get_uint64(); return v.d; } uint32_t XDRInput::get_opaque_length() Loading src/os/object/xdrstream.cc +12 −2 Original line number Diff line number Diff line Loading @@ -70,13 +70,23 @@ XDRStream & XDRStream::operator<<(int64_t number) XDRStream & XDRStream::operator<<(float number) { *this << *(uint32_t*)&number; union { uint32_t i; float f; } v; v.f = number; *this << v.i; return *this; } XDRStream & XDRStream::operator<<(double number) { *this << *(uint64_t*)&number; union { uint64_t i; double d; } v; v.d = number; *this << v.i; return *this; } Loading Loading
src/os/object/xdrinput.cc +12 −4 Original line number Diff line number Diff line Loading @@ -37,14 +37,22 @@ int64_t XDRInput::get_int64() float XDRInput::get_float() { uint32_t val = get_uint32(); return *(float*)&val; union { uint32_t i; float f; } v; v.i = get_uint32(); return v.f; } double XDRInput::get_double() { uint64_t val = get_uint64(); return *(double*)&val; union { uint64_t i; double d; } v; v.i = get_uint64(); return v.d; } uint32_t XDRInput::get_opaque_length() Loading
src/os/object/xdrstream.cc +12 −2 Original line number Diff line number Diff line Loading @@ -70,13 +70,23 @@ XDRStream & XDRStream::operator<<(int64_t number) XDRStream & XDRStream::operator<<(float number) { *this << *(uint32_t*)&number; union { uint32_t i; float f; } v; v.f = number; *this << v.i; return *this; } XDRStream & XDRStream::operator<<(double number) { *this << *(uint64_t*)&number; union { uint64_t i; double d; } v; v.d = number; *this << v.i; return *this; } Loading