[vtkusers] Question about Reference counting!!

namgyun Lee ggang56 at gmail.com
Wed Aug 27 02:00:13 EDT 2008


Hi, everyone!

I am a new VTK user and trying to figure out how vtk reference counting is
working.
When I saw the result of simple code, I was kind of surprised.

This is the sample code that I used to test reference counting.

// test for reference counting
    vtkImageData* vtkImage = vtkImageData::New();
    std::cout << "Reference count: " << vtkImage->GetReferenceCount() <<
std::endl;
    std::cout << "Reference count: " << vtkImage->GetReferenceCount() <<
std::endl;

     vtkImageReslice* reslicer = vtkImageReslice::New();
     reslicer->SetInput (vtkImage);
     std::cout << "Reference count: " << vtkImage->GetReferenceCount() <<
std::endl;
     reslicer->Update();
     std::cout << "Reference count: " << vtkImage->GetReferenceCount() <<
std::endl;
     reslicer->Delete();
     std::cout << "Reference count: " << vtkImage->GetReferenceCount() <<
std::endl;


The output was 1 1 3 3 3!!!
It seems like the reference count increases before the actual pipeline
finishes updating.

I always thought that if the container(reslicer) is deleted, the reference
count of vtkImage  decreases as a result. And why did the reference become 3
instead of 2?
Am I thinking wrong? Could anyone explain about this?

Thank you so much.

Sincerely,
Nam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20080826/419d4e50/attachment.htm>


More information about the vtkusers mailing list