R: R: [vtkusers] Delete problems

Dominik Szczerba domi at vision.ee.ethz.ch
Sat Jul 15 07:10:16 EDT 2006


My problem went away by *ONLY* switching to smart pointers thus I 
suspect a bug outside my own code...
Dominik

Lazzarato Dr. Gianni wrote:
> Hi Dominik,
>            sure I use them, but probably a reference loop was the
> problem...I resolved by myself in a drastic way: rebuilding a 'fresh new
> actor' each interaction rather than Actor->Modified() call.
> Right now system memory is right released...
> Maybe your problem is similar...
> 
> Regards
> Gianni
> 
> 
> 
> -----Messaggio originale-----
> Da: vtkusers-bounces+lazzadrgi=libero.it at vtk.org
> [mailto:vtkusers-bounces+lazzadrgi=libero.it at vtk.org] Per conto di Dominik
> Szczerba
> Inviato: sabato 15 luglio 2006 12.01
> A: vtkusers at vtk.org
> Oggetto: Re: R: [vtkusers] Delete problems
> 
> No I am not familiar with this problems. Do you use smart pointers?
> regards,
> Dominik
> 
> Lazzarato Dr. Gianni wrote:
>> Hi David, Hi Dominik,
>>
>> I have similar problem with memory and vtk 5.
>> In a short pipeline with some filters I have a strange memory leak
> problem.
>> ( I carefully follow all the guidelines: new, delete, register, unregister
>> etc.).
>> This portion of code cause a memory leak: it is contained in a class
> derived
>> from vtkPolyDataAlgorithm and using new pipeline schema.
>>
>>
>> ----------------------------------------------------
>>   if (renderer->HasViewProp(Actor))
>> 	 {
>> 	   Actor ->Modified();
>>        }
>> 	else
>> 	  {
>> 	  renderer->AddViewProp(Actor);
>> 	  }
>> 	  renderer->Render();
>> ----------------------------------------------------
>>
>> Actor is added correctly first time,
>> in next interactions actor is correctly modified by the pipeline and
>> updated, but memory use increase for each interaction....each time I have
> a
>> call  to Actor->Modified() system memory usage increase. Why??? 
>>
>> Thanks for suggestions.
>>
>> Gianni Lazzarato
>>
>>  
>>
>>
>>
>>
>>
>> -----Messaggio originale-----
>> Da: vtkusers-bounces+lazzadrgi=libero.it at vtk.org
>> [mailto:vtkusers-bounces+lazzadrgi=libero.it at vtk.org] Per conto di David
>> Cole
>> Inviato: venerdì 14 luglio 2006 18.09
>> A: Dominik Szczerba
>> Cc: vtkusers vtkusers
>> Oggetto: Re: [vtkusers] Delete problems
>>
>> 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,
>> David
>>
>>
>> Dominik Szczerba wrote:
>>
>>> Hi,
>>>
>>> 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 
>>> components?
>>>
>>> PS. this is particularly annoying in combination matlab-vtk, as matlab 
>>> dies on any of such errors.
>>>
>>> regards,
>>> Dominik
>>> _______________________________________________
>>> 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:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>> _______________________________________________
>> 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:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>> _______________________________________________
>> 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:
>> http://www.vtk.org/mailman/listinfo/vtkusers
> 

-- 
Dominik Szczerba, Ph.D.
Computer Vision Lab CH-8092 Zurich
http://www.vision.ee.ethz.ch/~domi



More information about the vtkusers mailing list