← Back to team overview

dolfin team mailing list archive

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