dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #21179
Re: Hierarchical wrapping troubles
On Tue, Feb 01, 2011 at 03:12:05PM -0800, Johan Hake wrote:
> 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?
Is that possible? It's not in Ubuntu yet, or is it?
--
Anders
Follow ups
References