Use swig::PyObject_ptr name instead of swig::PyItem
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7826 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
863964e617
commit
3517fd7dea
4 changed files with 17 additions and 10 deletions
|
|
@ -113,13 +113,13 @@ Version 1.3.28 (unreleased)
|
||||||
But since normal C++ containers do not properly ref/unref
|
But since normal C++ containers do not properly ref/unref
|
||||||
their items, you should use the safer versions:
|
their items, you should use the safer versions:
|
||||||
|
|
||||||
%template(pyset) std::set<swig::PyItem>;
|
%template(pyset) std::set<swig::PyObject_ptr>;
|
||||||
%template(pyvector) std::vector<swig::PyItem>;
|
%template(pyvector) std::vector<swig::PyObject_ptr>;
|
||||||
%template() std::pair<swig::PyItem, swig::PyItem>;
|
%template() std::pair<swig::PyObject_ptr, swig::PyObject_ptr>;
|
||||||
%template(pyvector) std::map<swig::PyItem,swig::PyItem>;
|
%template(pyvector) std::map<swig::PyObject_ptr,swig::PyObject_ptr>;
|
||||||
....
|
....
|
||||||
|
|
||||||
where swig::PyItem is a PyObject * envelope class provided
|
where swig::PyObject_ptr is a PyObject * envelope class provided
|
||||||
to safely incref/decref the python object.
|
to safely incref/decref the python object.
|
||||||
|
|
||||||
So, now you can use all the STL/STD containers as native
|
So, now you can use all the STL/STD containers as native
|
||||||
|
|
@ -248,7 +248,14 @@ Version 1.3.28 (unreleased)
|
||||||
swig-1.3.26 0.80s
|
swig-1.3.26 0.80s
|
||||||
swig-CVS 0.60s
|
swig-CVS 0.60s
|
||||||
|
|
||||||
Hence, now the proxy overhead is almost insignificant.
|
Hence, now for practical porpuses, the proxy overhead
|
||||||
|
is insignificant.
|
||||||
|
|
||||||
|
Note that the performance numbers we are showing is for
|
||||||
|
a simple module (two types) and a simple function (one
|
||||||
|
argument). For real situations, with modules with many
|
||||||
|
more types and/or functions with many more parameters,
|
||||||
|
you will see even better results.
|
||||||
|
|
||||||
|
|
||||||
10/31/2005: mmatus
|
10/31/2005: mmatus
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ namespace std
|
||||||
%template(pairiiAc) pair<int,const pair<int, A*> >;
|
%template(pairiiAc) pair<int,const pair<int, A*> >;
|
||||||
|
|
||||||
|
|
||||||
%template() pair<swig::PyItem, swig::PyItem>;
|
%template() pair<swig::PyObject_ptr, swig::PyObject_ptr>;
|
||||||
%template(pymap) map<swig::PyItem, swig::PyItem>;
|
%template(pymap) map<swig::PyObject_ptr, swig::PyObject_ptr>;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%template(pyset) std::set<swig::PyItem>;
|
%template(pyset) std::set<swig::PyObject_ptr>;
|
||||||
|
|
|
||||||
|
|
@ -121,4 +121,4 @@ std::vector<std::string> vecStr(std::vector<std::string> v) {
|
||||||
%array_functions(int,ArrInt)
|
%array_functions(int,ArrInt)
|
||||||
|
|
||||||
|
|
||||||
%template(pyvector) std::vector<swig::PyItem>;
|
%template(pyvector) std::vector<swig::PyObject_ptr>;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue