aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/basewrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libshiboken/basewrapper.cpp')
-rw-r--r--libshiboken/basewrapper.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/libshiboken/basewrapper.cpp b/libshiboken/basewrapper.cpp
index 3ea0507ef..f1165d911 100644
--- a/libshiboken/basewrapper.cpp
+++ b/libshiboken/basewrapper.cpp
@@ -1089,7 +1089,7 @@ void keepReference(SbkObject* self, const char* key, PyObject* referredObject, b
RefCountMap& refCountMap = *(self->d->referredObjects);
if (!isNone)
- incRefPyObject(referredObject);
+ Py_INCREF(referredObject);
RefCountMap::iterator iter = refCountMap.find(key);
if (!append && (iter != refCountMap.end())) {
@@ -1098,11 +1098,13 @@ void keepReference(SbkObject* self, const char* key, PyObject* referredObject, b
}
if (!isNone) {
- std::list<SbkObject*> values = splitPyObject(referredObject);
- if (append && (iter != refCountMap.end()))
- refCountMap[key].insert(refCountMap[key].end(), values.begin(), values.end());
- else
- refCountMap[key] = values;
+ if (append && (iter != refCountMap.end())) {
+ refCountMap[key].push_back(reinterpret_cast<SbkObject*>(referredObject));
+ } else {
+ std::list<SbkObject*> new_list;
+ new_list.push_back(reinterpret_cast<SbkObject*>(referredObject));
+ refCountMap[key] = new_list;;
+ }
}
}