aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-06-09 10:06:35 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-06-09 09:11:47 +0000
commite25ed8d09b67a0b67dee4239513c00a6b7e701a4 (patch)
treee145da42c4e0cc1d2a40e24c313bc34d5de51817 /sources
parent8dd21fcb2c9f0366b3d298781c8a852363a4df22 (diff)
libshiboken: Fix/Silence some MSVC warnings
autodecref.h(110): warning C4522: 'Shiboken::AutoDecRef': multiple assignment operators specified autodecref.h(78): warning C4800: 'PyObject *const ': forcing value to bool 'true' or 'false' (performance warning) conversions.h(282): warning C4800: 'long': forcing value to bool 'true' or 'false' (performance warning) basewrapper.cpp(625): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning) basewrapper.cpp(654): warning C4800: 'SpecialCastFunction': forcing value to bool 'true' or 'false' (performance warning) basewrapper.cpp(1014): warning C4800: 'Shiboken::ParentInfo *': forcing value to bool 'true' or 'false' (performance warning) basewrapper.cpp(1044): warning C4800: 'void *': forcing value to bool 'true' or 'false' (performance warning) helper.cpp(56): warning C4244: 'initializing': conversion from 'Py_ssize_t' to 'int', possible loss of data shibokenbuffer.cpp(46): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning) Change-Id: If1517fde8e7670f258a56f6d845a66ebb3d82141 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources')
-rw-r--r--sources/shiboken2/libshiboken/autodecref.h11
-rw-r--r--sources/shiboken2/libshiboken/basewrapper.cpp8
-rw-r--r--sources/shiboken2/libshiboken/conversions.h2
-rw-r--r--sources/shiboken2/libshiboken/helper.cpp2
-rw-r--r--sources/shiboken2/libshiboken/sbkconverter.cpp2
-rw-r--r--sources/shiboken2/libshiboken/shibokenbuffer.cpp2
6 files changed, 18 insertions, 9 deletions
diff --git a/sources/shiboken2/libshiboken/autodecref.h b/sources/shiboken2/libshiboken/autodecref.h
index 1fefcc25..a82bbb35 100644
--- a/sources/shiboken2/libshiboken/autodecref.h
+++ b/sources/shiboken2/libshiboken/autodecref.h
@@ -43,6 +43,11 @@
#include "sbkpython.h"
#include "basewrapper.h"
+#ifdef _MSC_VER
+__pragma(warning(push))
+__pragma(warning(disable:4522)) // warning: C4522: 'Shiboken::AutoDecRef': multiple assignment operators specified
+#endif
+
struct SbkObject;
namespace Shiboken
{
@@ -75,7 +80,7 @@ public:
inline PyObject* object() { return m_pyObj; }
inline operator PyObject*() { return m_pyObj; }
inline operator PyTupleObject*() { return reinterpret_cast<PyTupleObject*>(m_pyObj); }
- inline operator bool() const { return m_pyObj; }
+ inline operator bool() const { return m_pyObj != 0; }
inline PyObject* operator->() { return m_pyObj; }
template<typename T>
@@ -111,5 +116,9 @@ private:
} // namespace Shiboken
+#ifdef _MSC_VER
+__pragma(warning(pop))
+#endif
+
#endif // AUTODECREF_H
diff --git a/sources/shiboken2/libshiboken/basewrapper.cpp b/sources/shiboken2/libshiboken/basewrapper.cpp
index b3f99a8a..b319fea7 100644
--- a/sources/shiboken2/libshiboken/basewrapper.cpp
+++ b/sources/shiboken2/libshiboken/basewrapper.cpp
@@ -624,7 +624,7 @@ namespace ObjectType
bool checkType(PyTypeObject* type)
{
- return PyType_IsSubtype(type, reinterpret_cast<PyTypeObject*>(&SbkObject_Type));
+ return PyType_IsSubtype(type, reinterpret_cast<PyTypeObject*>(&SbkObject_Type)) != 0;
}
bool isUserType(PyTypeObject* type)
@@ -653,7 +653,7 @@ void* callExternalCppConversion(SbkObjectType*, PyObject*) { return 0; }
bool hasCast(SbkObjectType* type)
{
- return type->d->mi_specialcast;
+ return type->d->mi_specialcast != 0;
}
void* cast(SbkObjectType* sourceType, SbkObject* obj, PyTypeObject* targetType)
@@ -1013,7 +1013,7 @@ void makeValid(SbkObject* self)
bool hasParentInfo(SbkObject* pyObj)
{
- return pyObj->d->parentInfo;
+ return pyObj->d->parentInfo != 0;
}
void* cppPointer(SbkObject* pyObj, PyTypeObject* desiredType)
@@ -1043,7 +1043,7 @@ bool setCppPointer(SbkObject* sbkObj, PyTypeObject* desiredType, void* cptr)
if (reinterpret_cast<SbkObjectType*>(Py_TYPE(sbkObj))->d->is_multicpp)
idx = getTypeIndexOnHierarchy(Py_TYPE(sbkObj), desiredType);
- bool alreadyInitialized = sbkObj->d->cptr[idx];
+ const bool alreadyInitialized = sbkObj->d->cptr[idx] != 0;
if (alreadyInitialized)
PyErr_SetString(PyExc_RuntimeError, "You can't initialize an object twice!");
else
diff --git a/sources/shiboken2/libshiboken/conversions.h b/sources/shiboken2/libshiboken/conversions.h
index f0af2be8..a21fa0c2 100644
--- a/sources/shiboken2/libshiboken/conversions.h
+++ b/sources/shiboken2/libshiboken/conversions.h
@@ -279,7 +279,7 @@ struct Converter<bool>
static inline bool isConvertible(PyObject* pyobj) { return PyInt_Check(pyobj); }
static inline PyObject* toPython(void* cppobj) { return toPython(*reinterpret_cast<bool*>(cppobj)); }
static inline PyObject* toPython(bool cppobj) { return PyBool_FromLong(cppobj); }
- static inline bool toCpp(PyObject* pyobj) { return PyInt_AS_LONG(pyobj); }
+ static inline bool toCpp(PyObject* pyobj) { return PyInt_AS_LONG(pyobj) != 0; }
};
/**
diff --git a/sources/shiboken2/libshiboken/helper.cpp b/sources/shiboken2/libshiboken/helper.cpp
index 9709d077..2249bf45 100644
--- a/sources/shiboken2/libshiboken/helper.cpp
+++ b/sources/shiboken2/libshiboken/helper.cpp
@@ -53,7 +53,7 @@ bool sequenceToArgcArgv(PyObject* argList, int* argc, char*** argv, const char*
// Check all items
Shiboken::AutoDecRef args(PySequence_Fast(argList, 0));
- int numArgs = PySequence_Fast_GET_SIZE(argList);
+ int numArgs = int(PySequence_Fast_GET_SIZE(argList));
for (int i = 0; i < numArgs; ++i) {
PyObject* item = PySequence_Fast_GET_ITEM(args.object(), i);
if (!PyBytes_Check(item) && !PyUnicode_Check(item))
diff --git a/sources/shiboken2/libshiboken/sbkconverter.cpp b/sources/shiboken2/libshiboken/sbkconverter.cpp
index e7e9995b..0b18e49d 100644
--- a/sources/shiboken2/libshiboken/sbkconverter.cpp
+++ b/sources/shiboken2/libshiboken/sbkconverter.cpp
@@ -517,7 +517,7 @@ bool pythonTypeIsObjectType(const SbkConverter *converter)
bool pythonTypeIsWrapperType(const SbkConverter *converter)
{
- return converter->pointerToPython;
+ return converter->pointerToPython != 0;
}
SpecificConverter::SpecificConverter(const char* typeName)
diff --git a/sources/shiboken2/libshiboken/shibokenbuffer.cpp b/sources/shiboken2/libshiboken/shibokenbuffer.cpp
index 6cc61766..222deb3f 100644
--- a/sources/shiboken2/libshiboken/shibokenbuffer.cpp
+++ b/sources/shiboken2/libshiboken/shibokenbuffer.cpp
@@ -43,7 +43,7 @@
bool Shiboken::Buffer::checkType(PyObject* pyObj)
{
- return PyObject_CheckReadBuffer(pyObj);
+ return PyObject_CheckReadBuffer(pyObj) != 0;
}
void* Shiboken::Buffer::getPointer(PyObject* pyObj, Py_ssize_t* size)