From 0151116f107393fe342fb491e68d67edefc33ddb Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Tue, 9 Nov 2010 18:16:38 -0200 Subject: Removed macros SbkBaseWrapper_instanceDict and SbkBaseWrapper_setInstanceDict --- libshiboken/bindingmanager.cpp | 43 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) (limited to 'libshiboken/bindingmanager.cpp') diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp index e2d32d832..e667f6173 100644 --- a/libshiboken/bindingmanager.cpp +++ b/libshiboken/bindingmanager.cpp @@ -32,7 +32,7 @@ namespace Shiboken { -typedef google::dense_hash_map WrapperMap; +typedef google::dense_hash_map WrapperMap; class Graph { @@ -111,7 +111,7 @@ struct BindingManager::BindingManagerPrivate { BindingManagerPrivate() : destroying(false) {} void releaseWrapper(void* cptr); - void assignWrapper(PyObject* wrapper, const void* cptr); + void assignWrapper(SbkObject* wrapper, const void* cptr); }; @@ -122,7 +122,7 @@ void BindingManager::BindingManagerPrivate::releaseWrapper(void* cptr) wrapperMapper.erase(iter); } -void BindingManager::BindingManagerPrivate::assignWrapper(PyObject* wrapper, const void* cptr) +void BindingManager::BindingManagerPrivate::assignWrapper(SbkObject* wrapper, const void* cptr) { assert(cptr); WrapperMap::iterator iter = wrapperMapper.find(cptr); @@ -162,29 +162,29 @@ bool BindingManager::hasWrapper(const void* cptr) { return m_d->wrapperMapper.count(cptr); } -void BindingManager::registerWrapper(SbkObject* pyobj, void* cptr) +void BindingManager::registerWrapper(SbkObject* pyObj, void* cptr) { - SbkBaseWrapperType* instanceType = reinterpret_cast(pyobj->ob_type); + SbkBaseWrapperType* instanceType = reinterpret_cast(pyObj->ob_type); if (instanceType->mi_init && !instanceType->mi_offsets) instanceType->mi_offsets = instanceType->mi_init(cptr); - m_d->assignWrapper(reinterpret_cast(pyobj), cptr); + m_d->assignWrapper(pyObj, cptr); if (instanceType->mi_offsets) { int* offset = instanceType->mi_offsets; while (*offset != -1) { if (*offset > 0) - m_d->assignWrapper(reinterpret_cast(pyobj), reinterpret_cast((std::size_t) cptr + (*offset))); + m_d->assignWrapper(pyObj, reinterpret_cast((std::size_t) cptr + (*offset))); offset++; } } } -void BindingManager::releaseWrapper(PyObject* wrapper) +void BindingManager::releaseWrapper(SbkObject* sbkObj) { - SbkBaseWrapperType* sbkType = reinterpret_cast(wrapper->ob_type); - int numBases = sbkType->is_multicpp ? getNumberOfCppBaseClasses(wrapper->ob_type) : 1; + SbkBaseWrapperType* sbkType = reinterpret_cast(sbkObj->ob_type); + int numBases = sbkType->is_multicpp ? getNumberOfCppBaseClasses(sbkObj->ob_type) : 1; - void** cptrs = reinterpret_cast(wrapper)->d->cptr; + void** cptrs = reinterpret_cast(sbkObj)->d->cptr; for (int i = 0; i < numBases; ++i) { void* cptr = cptrs[i]; m_d->releaseWrapper(cptr); @@ -199,7 +199,7 @@ void BindingManager::releaseWrapper(PyObject* wrapper) } } -PyObject* BindingManager::retrieveWrapper(const void* cptr) +SbkObject* BindingManager::retrieveWrapper(const void* cptr) { WrapperMap::iterator iter = m_d->wrapperMapper.find(cptr); if (iter == m_d->wrapperMapper.end()) @@ -209,22 +209,23 @@ PyObject* BindingManager::retrieveWrapper(const void* cptr) PyObject* BindingManager::getOverride(const void* cptr, const char* methodName) { - PyObject* wrapper = retrieveWrapper(cptr); + SbkObject* wrapper = retrieveWrapper(cptr); if (!wrapper) return 0; - if (SbkBaseWrapper_instanceDict(wrapper)) { - PyObject* method = PyDict_GetItemString(SbkBaseWrapper_instanceDict(wrapper), methodName); + if (wrapper->ob_dict) { + PyObject* method = PyDict_GetItemString(wrapper->ob_dict, methodName); if (method) { - Py_INCREF(method); + Py_INCREF((PyObject*)method); return method; } } PyObject* pyMethodName = PyString_FromString(methodName); - PyObject* method = PyObject_GetAttr(wrapper, pyMethodName); + PyObject* method = PyObject_GetAttr((PyObject*)wrapper, pyMethodName); - if (method && PyMethod_Check(method) && reinterpret_cast(method)->im_self == wrapper) { + if (method && PyMethod_Check(method) + && reinterpret_cast(method)->im_self == reinterpret_cast(wrapper)) { PyObject* defaultMethod; PyObject* mro = wrapper->ob_type->tp_mro; @@ -288,7 +289,7 @@ void BindingManager::invalidateWrapper(SbkObject* wrapper) m_d->destroying = parentDestroying; } - releaseWrapper(reinterpret_cast(wrapper)); + releaseWrapper(wrapper); } void BindingManager::invalidateWrapper(const void* cptr) @@ -343,9 +344,9 @@ SbkBaseWrapperType* BindingManager::resolveType(void* cptr, Shiboken::SbkBaseWra return identifiedType ? identifiedType : type; } -std::set< PyObject* > BindingManager::getAllPyObjects() +std::set BindingManager::getAllPyObjects() { - std::set pyObjects; + std::set pyObjects; const WrapperMap& wrappersMap = m_d->wrapperMapper; WrapperMap::const_iterator it = wrappersMap.begin(); for (; it != wrappersMap.end(); ++it) -- cgit v1.2.3