[Insight-users] Why is itkDataObject::m_Source a WeakPointer?
Miller, James V (Research)
millerjv@crd.ge.com
Fri, 11 Oct 2002 12:54:01 -0400
The source is a WeakPointer because the Source points to the DataObject and
the DataObject points to the Source. If they both held SmartPointers to each
other, then we would have a cyclic reference loop and neither the Source or the
DataObject could ever be deleted.
> -----Original Message-----
> From: Th. Boettger [mailto:t.boettger@dkfz-heidelberg.de]
> Sent: Friday, October 11, 2002 12:25 PM
> To: ITK Mailing List
> Subject: [Insight-users] Why is itkDataObject::m_Source a WeakPointer?
>
>
> Hi all,
>
> I am trying to construct a filter pipeline in a member function and to
> return the resulting data object *without* calling Update()
> in this method.
> When trying to update the returned data object outside, the
> source is set to
> NULL. The reason is that m_Source member is defined as a weak
> pointer, thus
> the reference count of the process objects (the source) is
> not incremented.
>
> Why is it a WeakPointer? How can I avoid this problem?
>
> class itkDataObject
> {
> ...
> mutable WeakPointer<ProcessObject> m_Source;
> ...
> }
>
> Thanks in advance!
>
>
>
> ---
> Dipl.-Inform. Thomas Boettger
> Deutsches Krebsforschungszentrum (German Cancer
> Research Center)
> Div. Medical and Biological Informatics H0100 Tel: (+49)
> 6221-42 2328
> Im Neuenheimer Feld 280 Fax: (+49)
> 6221-42 2345
> D-69120 Heidelberg e-mail:
> t.boettger@dkfz.de
> Germany
http://www.dkfz.de/mbi/people/thomasb.shtml
_______________________________________________
Insight-users mailing list
Insight-users@public.kitware.com
http://public.kitware.com/mailman/listinfo/insight-users