aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/bindingmanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'libshiboken/bindingmanager.h')
-rw-r--r--libshiboken/bindingmanager.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/libshiboken/bindingmanager.h b/libshiboken/bindingmanager.h
index e12558b4f..b43bd77b2 100644
--- a/libshiboken/bindingmanager.h
+++ b/libshiboken/bindingmanager.h
@@ -49,7 +49,20 @@ public:
PyObject* getOverride(const void* cptr, const char* methodName);
void addClassInheritance(SbkObjectType* parent, SbkObjectType* child);
- SbkObjectType* resolveType(void* cptr, SbkObjectType* type);
+ /**
+ * \deprecated Use \fn resolveType(void**, SbkObjectType*), this version is broken when used with multiple inheritance
+ * because the \p cptr pointer of the discovered type may be different of the given \p cptr in case
+ * of multiple inheritance
+ */
+ SBK_DEPRECATED(SbkObjectType* resolveType(void* cptr, SbkObjectType* type));
+ /**
+ * Try to find the correct type of *cptr knowing that it's at least of type \p type.
+ * In case of multiple inheritance this function may change the contents of cptr.
+ * \param cptr a pointer to a pointer to the instance of type \p type
+ * \param type type of *cptr
+ * \warning This function is slow, use it only as last resort.
+ */
+ SbkObjectType* resolveType(void** cptr, SbkObjectType* type);
std::set<SbkObject*> getAllPyObjects();