← Back to team overview

dolfin team mailing list archive

Re: Memory leak in plot.cpp?

 

I have pushed some changes now. The plot() family of functions now
return boost::shared_ptr<VTKPlotter>. plot.cpp stores a list of shared
pointers to the objects (so they will not be destroyed before the
program terminates).

(VTKPlotter still maintains a private static list of pointers to all
created object to allow interactive() to have effect on all windows,
but this is not related to memory handling).

Benjamin

2012/8/8 Benjamin Kehlet <benjamik@xxxxxxxxx>:
> 2012/8/8 Garth N. Wells <gnw20@xxxxxxxxx>:
>> The lines:
>>
>>   VTKPlotter* plotter = new VTKPlotter(t);
>>   return plotter;
>>
>> in the function dolfin::get_plot (dolfin/plot/plot.cpp) look
>> suspiciously like a memory leak. Can one of the plot developers
>> confirm either way?
>
> Yes, we need a better solution here. The problem is that we have the
> interface where one both in cpp and python can do
>
> plot(some_plottable_object)
>
> and the plot window should stay on the screen even if the user doesn't
> store the returned pointer to the plotter object. So where should this
> object be deleted? And if we return a shared_ptr to the plotter
> object, wouldn't it be deleted immediately in this case?
>
> Benjamin
>
>>
>> Garth
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dolfin
>> Post to     : dolfin@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dolfin
>> More help   : https://help.launchpad.net/ListHelp


References