You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2010/08/12 12:30:55 UTC

svn commit: r984714 - in /qpid/trunk/qpid/cpp/src: qpid/types/Variant.cpp tests/Variant.cpp

Author: gsim
Date: Thu Aug 12 10:30:54 2010
New Revision: 984714

URL: http://svn.apache.org/viewvc?rev=984714&view=rev
Log:
Fix some compilation errors

Modified:
    qpid/trunk/qpid/cpp/src/qpid/types/Variant.cpp
    qpid/trunk/qpid/cpp/src/tests/Variant.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/types/Variant.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/types/Variant.cpp?rev=984714&r1=984713&r2=984714&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/types/Variant.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/types/Variant.cpp Thu Aug 12 10:30:54 2010
@@ -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>();

Modified: qpid/trunk/qpid/cpp/src/tests/Variant.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/Variant.cpp?rev=984714&r1=984713&r2=984714&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/Variant.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/Variant.cpp Thu Aug 12 10:30:54 2010
@@ -271,33 +271,33 @@ QPID_AUTO_TEST_CASE(testSizeConversionsU
     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(testSizeConversionsI
     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(testSizeConversionsI
     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(testSizeConversionsI
     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)



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org