aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-09-07 14:37:57 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2016-09-07 17:25:25 +0000
commit55329118135f4e914447ee3726906876cf3b73a6 (patch)
tree96b6d1982bc1461ef55d45ac17107665f01e6783 /libshiboken
parentde736cf64f34e815d5bbf55751577dc1ee373924 (diff)
sbkconverter.cpp: Output warnings when conversion functions are missing
Prevent crash, output a warning instead. Task-number: PYSIDE-346 Change-Id: Ieb63ca959442d650f54f3798aa8c5df45b3f57f5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'libshiboken')
-rw-r--r--libshiboken/sbkconverter.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/libshiboken/sbkconverter.cpp b/libshiboken/sbkconverter.cpp
index 6b50eb0ac..f354bea7f 100644
--- a/libshiboken/sbkconverter.cpp
+++ b/libshiboken/sbkconverter.cpp
@@ -26,6 +26,7 @@
#include "google/dense_hash_map"
#include "autodecref.h"
#include "sbkdbg.h"
+#include "helper.h"
static SbkConverter** PrimitiveTypeConverters;
@@ -160,6 +161,11 @@ PyObject* pointerToPython(SbkConverter* converter, const void* cppIn)
assert(converter);
if (!cppIn)
Py_RETURN_NONE;
+ if (!converter->pointerToPython) {
+ warning(PyExc_RuntimeWarning, 0, "pointerToPython(): SbkConverter::pointerToPython is null for \"%s\".",
+ converter->pythonType->tp_name);
+ Py_RETURN_NONE;
+ }
return converter->pointerToPython(cppIn);
}
@@ -177,6 +183,11 @@ PyObject* referenceToPython(SbkConverter* converter, const void* cppIn)
Py_INCREF(pyOut);
return pyOut;
}
+ if (!converter->pointerToPython) {
+ warning(PyExc_RuntimeWarning, 0, "referenceToPython(): SbkConverter::pointerToPython is null for \"%s\".",
+ converter->pythonType->tp_name);
+ Py_RETURN_NONE;
+ }
return converter->pointerToPython(cppIn);
}
@@ -184,6 +195,11 @@ static inline PyObject* CopyCppToPython(SbkConverter* converter, const void* cpp
{
if (!cppIn)
Py_RETURN_NONE;
+ if (!converter->copyToPython) {
+ warning(PyExc_RuntimeWarning, 0, "CopyCppToPython(): SbkConverter::copyToPython is null for \"%s\".",
+ converter->pythonType->tp_name);
+ Py_RETURN_NONE;
+ }
return converter->copyToPython(cppIn);
}
PyObject* copyToPython(SbkObjectType* type, const void* cppIn)