CHANGES.current
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7778 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
e60b07b285
commit
c8acd49fb2
1 changed files with 41 additions and 1 deletions
|
|
@ -24,7 +24,47 @@ Unreleased changes
|
||||||
'close' iterator, while map.begin() and map.end() are
|
'close' iterator, while map.begin() and map.end() are
|
||||||
'open' iterators.
|
'open' iterators.
|
||||||
|
|
||||||
|
[Python]
|
||||||
|
- Finally, when we call
|
||||||
|
|
||||||
|
f = Foo()
|
||||||
|
|
||||||
|
the construction is 'one-way'. Before construction was done
|
||||||
|
something like
|
||||||
|
|
||||||
|
Foo() (python) -> _new_Foo() (C++)
|
||||||
|
new_Foo() (C++) -> FooPtr() (python)
|
||||||
|
FooPtr() (python) -> Foo() (python)
|
||||||
|
|
||||||
|
and returning a pointer was done like
|
||||||
|
|
||||||
|
NewPointerObj() (C++) -> FooPtr() (python)
|
||||||
|
FooPtr(python) -> Foo() (python)
|
||||||
|
|
||||||
|
|
||||||
|
ie, we when going back and forward between the C++ and
|
||||||
|
python side.
|
||||||
|
|
||||||
|
Now since there is no FooPtr the construction process is
|
||||||
|
|
||||||
|
Foo() (python) -> _new_Foo() (C++)
|
||||||
|
_new_Foo() (C++) -> NewPointerObj() (C++) (no shadow class)
|
||||||
|
|
||||||
|
and returning a pointer is done
|
||||||
|
|
||||||
|
NewPointerObj() (C++) (with shadow class) -> NewInstaceObj() (C++)
|
||||||
|
|
||||||
|
where NewInstanceObj creates a new instance without
|
||||||
|
calling __init__ and it doesn't go 'back' to python, is
|
||||||
|
'pure' C API.
|
||||||
|
|
||||||
|
- With the above change, and the other changes in the
|
||||||
|
PySwigObject type, which now carries the thisown and
|
||||||
|
swig_type_info pointer, we should be as fast as
|
||||||
|
boost::Python and/or the other python wrappers based in
|
||||||
|
pure Python/C API calls.
|
||||||
|
|
||||||
|
|
||||||
10/31/2005: mmatus
|
10/31/2005: mmatus
|
||||||
[Python]
|
[Python]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue