Author: tross
Date: Wed Jan 26 20:21:00 2011
New Revision: 1063862

URL: http://svn.apache.org/viewvc?rev=1063862&view=rev
Log:
Change order of Py<type>_check calls in typemap.
It turns out that PyInt_Check returns 'True' for booleans.
The order of the checks is now from most specific to least.

Modified:
    qpid/trunk/qpid/cpp/bindings/swig_python_typemaps.i

Modified: qpid/trunk/qpid/cpp/bindings/swig_python_typemaps.i
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/swig_python_typemaps.i?rev=1063862&r1=1063861&r2=1063862&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/swig_python_typemaps.i (original)
+++ qpid/trunk/qpid/cpp/bindings/swig_python_typemaps.i Wed Jan 26 20:21:00 2011
@@ -32,11 +32,11 @@ typedef int Py_ssize_t;
     void PyToList(PyObject*, qpid::types::Variant::List*);
 
     qpid::types::Variant PyToVariant(PyObject* value) {
+        if (PyBool_Check(value))   return 
qpid::types::Variant(bool(PyInt_AS_LONG(value) ? true : false));
         if (PyFloat_Check(value))  return 
qpid::types::Variant(PyFloat_AS_DOUBLE(value));
-        if (PyString_Check(value)) return 
qpid::types::Variant(std::string(PyString_AS_STRING(value)));
         if (PyInt_Check(value))    return 
qpid::types::Variant(int64_t(PyInt_AS_LONG(value)));
         if (PyLong_Check(value))   return 
qpid::types::Variant(int64_t(PyLong_AsLongLong(value)));
-        if (PyBool_Check(value))   return 
qpid::types::Variant(bool(PyInt_AS_LONG(value) ? true : false));
+        if (PyString_Check(value)) return 
qpid::types::Variant(std::string(PyString_AS_STRING(value)));
         if (PyDict_Check(value)) {
             qpid::types::Variant::Map map;
             PyToMap(value, &map);



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to