23 #ifndef PYTHONSHAREDPOINTERGUARD_H 24 #define PYTHONSHAREDPOINTERGUARD_H 29 #if (defined _DEBUG) && (defined WIN32) 38 #include "../../common/sharedStructures.h" 39 #include "../global.h" 42 #include <qsharedpointer.h> 52 template<
typename _Tp>
static void deleter(_Tp *sharedPointerData)
54 QHash<void*, PyObject*>::iterator i = m_hashTable.find((
void*)sharedPointerData);
55 if(i != m_hashTable.end())
57 Py_XDECREF(i.value());
62 template<
typename _Tp>
static QSharedPointer<_Tp> createPythonSharedPointer(_Tp *sharedPointerData, PyObject *pyObjOwner)
64 Py_XINCREF(pyObjOwner);
65 m_hashTable.insert((
void*)sharedPointerData, pyObjOwner);
66 return QSharedPointer<_Tp>(sharedPointerData, deleter<_Tp>);
70 static QHash<
void* , PyObject* > m_hashTable;
Definition: pythonSharedPointerGuard.h:47
Definition: apiFunctionsGraph.cpp:39