[vtkusers] Delete problems
mathieu.malaterre at kitware.com
Fri Jul 14 15:34:28 EDT 2006
Another approach (if you are using VTK 5) is the use of
vtkSmartPointer. You don't need to call Delete, it is done for you.
David Cole wrote:
> Any "New" calls should have corresponding "Delete" calls. Any "Register"
> calls should have corresponding "UnRegister" calls. And any reference
> loops need to be broken by setting one of the pointer variables involved
> to NULL or 0.
> Order is largely irrelevant except in the reference loop case. Sometimes
> it's important to know which part of a reference loop needs to go away
> first. Perhaps you need to force a bunch of objects to go away before a
> window is destroyed (for example).
> That's the beauty of reference counted systems: order doesn't matter as
> much as balance does...
> If you can't figure out where there's a missing Delete or UnRegister
> call, look for loops in pointer members (does your pipeline have a
> feedback loop??) It sometimes helps to draw a diagram of the pipeline.
> Or you could try simplifying it bit by bit and see when the leak goes
> away... Then start adding things back in until the leak comes back. That
> should point out where to look in the code...
> Hope this helps,
> Dominik Szczerba wrote:
>> I have a quite complex pipeline with a few actors and filters. When I
>> clean up at the end I always get a non-zero reference count somewhere
>> (using C++). How do I robustly know in which order I should Delete my
>> PS. this is particularly annoying in combination matlab-vtk, as matlab
>> dies on any of such errors.
>> This is the private VTK discussion list. Please keep messages
>> on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>> Follow this link to subscribe/unsubscribe:
> This is the private VTK discussion list. Please keep messages on-topic.
> Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
More information about the vtkusers