dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #21178
Re: Hierarchical wrapping troubles
On Tuesday February 1 2011 14:53:55 Anders Logg wrote:
> Something seems to go wrong with the Hierarchical Python wrappers.
>
> C++ program:
>
> UnitSquare mesh(3, 3);
> mesh._debug();
>
> Output:
>
> Debugging hierarchical object.
> has_parent() = 0
> _parent.get() = 0
> _parent.count() = 0
> has_child() = 0
> _child.get() = 0
> _child.count() = 0
> Debugging hierarchical object.
> has_parent() = 0
> _parent.get() = 0
> _parent.count() = 0
> has_child() = 0
> _child.get() = 0
> _child.count() = 0
>
> Python program:
>
> mesh = UnitSquare(3, 3)
> mesh._debug()
>
> Debugging hierarchical object.
> has_parent() = 0
> _parent.get() = 0
> _parent.count() = 0
> has_child() = 0
> _child.get() = 0
> _child.count() = 0
> Debugging hierarchical object.
> has_parent() = 1
> _parent.get() = cbd47290
> _parent.count() = -878438560
> has_child() = 1
> _child.get() = cbd47290
> _child.count() = -878438560
>
> The first call to Hierarchical::_debug is made from the constructor of
> Hierarchical and is correct in both C++ and Python, but then the
> Python object seems to lose contact with the reality.
Yes quite so...
I changed locally to swig 2.0 and the problem went away. shared_ptr support
has been rewritten in 2.0. I might be able to hack the interface of
Hierarchical in a similar manner as I did for Variables. Just implementing the
interface again in the C++ layer.
But I am not sure. The shared_ptr part of the SWIG interface starts to be
quite complex now with supporting SWIG version 1.3.37 to 1.3.40 and 2.0
Maybe we should force SWIG 2.0?
Johan
> --
> Anders
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help : https://help.launchpad.net/ListHelp
Follow ups
References