diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-09-07 14:37:57 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-09-07 17:25:25 +0000 |
commit | 55329118135f4e914447ee3726906876cf3b73a6 (patch) | |
tree | 96b6d1982bc1461ef55d45ac17107665f01e6783 /libshiboken | |
parent | de736cf64f34e815d5bbf55751577dc1ee373924 (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.cpp | 16 |
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) |