@@ -266,7 +266,7 @@ INLINE void DCPackerInterface::
do_pack_float64(char *buffer, double value) {
#ifdef WORDS_BIGENDIAN
// Reverse the byte ordering for big-endian machines.
- char *p = (char *)value;
+ char *p = (char *)&value;
for (size_t i = 0; i < 8; i++) {
buffer[i] = p[7 - i];
}
@@ -1467,7 +1467,7 @@ unpack_uint(const char *data, size_t length, size_t &p, unsigned int &value,
PN_uint64 uint_value = do_unpack_uint64(data + p);
_uint64_range.validate(uint_value, range_error);
value = (unsigned int)uint_value;
- if (value != uint_value || value < 0) {
+ if (value != uint_value) {
pack_error = true;
p += 8;