diff options
author | Gordon Sim <gsim@apache.org> | 2010-08-12 10:30:54 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2010-08-12 10:30:54 +0000 |
commit | 5f2377a366fbfbc4f025378d2f3838e8447a3b4c (patch) | |
tree | 240b0863d69e7941367effed6f3b0e503ad2ea19 | |
parent | ba7f39e1ebd845018cb8c658716f7fb1e9f3ff10 (diff) | |
download | qpid-python-5f2377a366fbfbc4f025378d2f3838e8447a3b4c.tar.gz |
Fix some compilation errors
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@984714 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | cpp/src/qpid/types/Variant.cpp | 40 | ||||
-rw-r--r-- | cpp/src/tests/Variant.cpp | 36 |
2 files changed, 35 insertions, 41 deletions
diff --git a/cpp/src/qpid/types/Variant.cpp b/cpp/src/qpid/types/Variant.cpp index e43b9997f3..bf255b4423 100644 --- a/cpp/src/qpid/types/Variant.cpp +++ b/cpp/src/qpid/types/Variant.cpp @@ -24,6 +24,7 @@ #include <boost/format.hpp> #include <boost/lexical_cast.hpp> #include <algorithm> +#include <limits> #include <sstream> namespace qpid { @@ -343,43 +344,36 @@ uint64_t VariantImpl::asUint64() const throw InvalidConversion(QPID_MSG("Cannot convert from " << getTypeName(type) << " to " << getTypeName(VAR_UINT64))); } -#define I8_MIN -128 -#define I8_MAX 127 -#define I16_MIN -32768 -#define I16_MAX 32767 -#define I32_MIN -2147483648 -#define I32_MAX 2147483647 - int8_t VariantImpl::asInt8() const { switch(type) { case VAR_INT8: return value.i8; case VAR_INT16: - if ((value.i16 >= I8_MIN) && (value.i16 <= I8_MAX)) + if ((value.i16 >= std::numeric_limits<int8_t>::min()) && (value.i16 <= std::numeric_limits<int8_t>::max())) return int8_t(value.i16); break; case VAR_INT32: - if ((value.i32 >= I8_MIN) && (value.i32 <= I8_MAX)) + if ((value.i32 >= std::numeric_limits<int8_t>::min()) && (value.i32 <= std::numeric_limits<int8_t>::max())) return int8_t(value.i32); break; case VAR_INT64: - if ((value.i64 >= I8_MIN) && (value.i64 <= I8_MAX)) + if ((value.i64 >= std::numeric_limits<int8_t>::min()) && (value.i64 <= std::numeric_limits<int8_t>::max())) return int8_t(value.i64); break; case VAR_UINT8: - if (value.ui8 <= I8_MAX) + if (value.ui8 <= std::numeric_limits<int8_t>::max()) return int8_t(value.ui8); break; case VAR_UINT16: - if (value.ui16 <= I8_MAX) + if (value.ui16 <= std::numeric_limits<int8_t>::max()) return int8_t(value.ui16); break; case VAR_UINT32: - if (value.ui32 <= I8_MAX) + if (value.ui32 <= (uint) std::numeric_limits<int8_t>::max()) return int8_t(value.ui32); break; case VAR_UINT64: - if (value.ui64 <= I8_MAX) + if (value.ui64 <= (uint) std::numeric_limits<int8_t>::max()) return int8_t(value.ui64); break; case VAR_STRING: return convertFromString<int8_t>(); @@ -393,24 +387,24 @@ int16_t VariantImpl::asInt16() const case VAR_INT8: return value.i8; case VAR_INT16: return value.i16; case VAR_INT32: - if ((value.i32 >= I16_MIN) && (value.i32 <= I16_MAX)) + if ((value.i32 >= std::numeric_limits<int16_t>::min()) && (value.i32 <= std::numeric_limits<int16_t>::max())) return int16_t(value.i32); break; case VAR_INT64: - if ((value.i64 >= I16_MIN) && (value.i64 <= I16_MAX)) + if ((value.i64 >= std::numeric_limits<int16_t>::min()) && (value.i64 <= std::numeric_limits<int16_t>::max())) return int16_t(value.i64); break; case VAR_UINT8: return int16_t(value.ui8); case VAR_UINT16: - if (value.ui16 <= I16_MAX) + if (value.ui16 <= std::numeric_limits<int16_t>::max()) return int16_t(value.ui16); break; case VAR_UINT32: - if (value.ui32 <= I16_MAX) + if (value.ui32 <= (uint) std::numeric_limits<int16_t>::max()) return int16_t(value.ui32); break; case VAR_UINT64: - if (value.ui64 <= I16_MAX) + if (value.ui64 <= (uint) std::numeric_limits<int16_t>::max()) return int16_t(value.ui64); break; case VAR_STRING: return convertFromString<int16_t>(); @@ -425,17 +419,17 @@ int32_t VariantImpl::asInt32() const case VAR_INT16: return value.i16; case VAR_INT32: return value.i32; case VAR_INT64: - if ((value.i64 >= I32_MIN) && (value.i64 <= I32_MAX)) + if ((value.i64 >= std::numeric_limits<int32_t>::min()) && (value.i64 <= std::numeric_limits<int32_t>::max())) return int32_t(value.i64); break; case VAR_UINT8: return int32_t(value.ui8); case VAR_UINT16: return int32_t(value.ui16); case VAR_UINT32: - if (value.ui32 <= I32_MAX) + if (value.ui32 <= (uint32_t) std::numeric_limits<int32_t>::max()) return int32_t(value.ui32); break; case VAR_UINT64: - if (value.ui64 <= I32_MAX) + if (value.ui64 <= (uint32_t) std::numeric_limits<int32_t>::max()) return int32_t(value.ui64); break; case VAR_STRING: return convertFromString<int32_t>(); @@ -454,7 +448,7 @@ int64_t VariantImpl::asInt64() const case VAR_UINT16: return int64_t(value.ui16); case VAR_UINT32: return int64_t(value.ui32); case VAR_UINT64: - if (value.ui64 <= 0x7fffffffffffffff) + if (value.ui64 <= (uint64_t) std::numeric_limits<int64_t>::max()) return int64_t(value.ui64); break; case VAR_STRING: return convertFromString<int64_t>(); diff --git a/cpp/src/tests/Variant.cpp b/cpp/src/tests/Variant.cpp index 17ec997928..596bde36de 100644 --- a/cpp/src/tests/Variant.cpp +++ b/cpp/src/tests/Variant.cpp @@ -271,33 +271,33 @@ QPID_AUTO_TEST_CASE(testSizeConversionsUint) BOOST_CHECK_EQUAL((int64_t) 66000, value.asInt64()); //uint64 (more than 31 bits) to other uints, ints - value = (uint64_t) 3000000000; + value = (uint64_t) 3000000000ul; BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); - BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32()); - BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64()); + BOOST_CHECK_EQUAL((uint32_t) 3000000000ul, value.asUint32()); + BOOST_CHECK_EQUAL((uint64_t) 3000000000ul, value.asUint64()); BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); - BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64()); + BOOST_CHECK_EQUAL((int64_t) 3000000000ul, value.asInt64()); //uint64 (more than 32 bits) to other uints, ints - value = (uint64_t) 7000000000; + value = (uint64_t) 7000000000ull; BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); - BOOST_CHECK_EQUAL((uint64_t) 7000000000, value.asUint64()); + BOOST_CHECK_EQUAL((uint64_t) 7000000000ull, value.asUint64()); BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); - BOOST_CHECK_EQUAL((int64_t) 7000000000, value.asInt64()); + BOOST_CHECK_EQUAL((int64_t) 7000000000ull, value.asInt64()); //uint64 (more than 63 bits) to other uints, ints - value = (uint64_t) 0x8000000000000000; + value = (uint64_t) 0x8000000000000000ull; BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); - BOOST_CHECK_EQUAL((uint64_t) 0x8000000000000000, value.asUint64()); + BOOST_CHECK_EQUAL((uint64_t) 0x8000000000000000ull, value.asUint64()); BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); @@ -513,26 +513,26 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt) BOOST_CHECK_EQUAL((int64_t) 40000, value.asInt64()); //int64 (positive in more than 31 bits) - value = (int64_t) 3000000000; + value = (int64_t) 3000000000ll; BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); - BOOST_CHECK_EQUAL((uint32_t) 3000000000, value.asUint32()); - BOOST_CHECK_EQUAL((uint64_t) 3000000000, value.asUint64()); + BOOST_CHECK_EQUAL((uint32_t) 3000000000ll, value.asUint32()); + BOOST_CHECK_EQUAL((uint64_t) 3000000000ll, value.asUint64()); BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); - BOOST_CHECK_EQUAL((int64_t) 3000000000, value.asInt64()); + BOOST_CHECK_EQUAL((int64_t) 3000000000ll, value.asInt64()); //int64 (positive in more than 32 bits) - value = (int64_t) 5000000000; + value = (int64_t) 5000000000ll; BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); - BOOST_CHECK_EQUAL((uint64_t) 5000000000, value.asUint64()); + BOOST_CHECK_EQUAL((uint64_t) 5000000000ll, value.asUint64()); BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); - BOOST_CHECK_EQUAL((int64_t) 5000000000, value.asInt64()); + BOOST_CHECK_EQUAL((int64_t) 5000000000ll, value.asInt64()); //int64 (negative in 7 bits) value = (int64_t) -100; @@ -568,7 +568,7 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt) BOOST_CHECK_EQUAL((int64_t) -40000, value.asInt64()); //int64 (negative in more than 31 bits) - value = (int64_t) -3000000000; + value = (int64_t) -3000000000ll; BOOST_CHECK_THROW(value.asUint8(), InvalidConversion); BOOST_CHECK_THROW(value.asUint16(), InvalidConversion); BOOST_CHECK_THROW(value.asUint32(), InvalidConversion); @@ -576,7 +576,7 @@ QPID_AUTO_TEST_CASE(testSizeConversionsInt) BOOST_CHECK_THROW(value.asInt8(), InvalidConversion); BOOST_CHECK_THROW(value.asInt16(), InvalidConversion); BOOST_CHECK_THROW(value.asInt32(), InvalidConversion); - BOOST_CHECK_EQUAL((int64_t) -3000000000, value.asInt64()); + BOOST_CHECK_EQUAL((int64_t) -3000000000ll, value.asInt64()); } QPID_AUTO_TEST_CASE(testAssignment) |