[Insight-developers] ReleaseDataFlagOn() and some minipipeline filters. Seg.Fault.

Luis Ibanez luis . ibanez at kitware . com
Sun, 31 Aug 2003 11:29:24 -0400


Hi,

Tracking a crash on one of the volview plugins I found that some
filters do not allow to call ReleaseDataFlagOn() on their immediate
predecessors on the pipeline.

Filters like the AntiAliasImageFilter, which derives from the
itkSparseFieldLevelSetImageFilter, have internal filters that
call "Update()" as part of their internal processing.  When
this internal Update() call is issued, the predecessor filter
will release its output data (if the ReleaseDataFlag is on),
making that any subsequent access to the input image in the
SparseFieldLevelSetImageFilter will result in invalid memory
access.

At this point of the release process,  it only seems to be worth
to log this as an issue in GNATS, and probably add Doxygen
warning/comments in the filters having internal pipelines.

On the long run, these filters could Check if their predecessors
have ReleseaDataFlagOn(), and disable it until the total filter
is executed (not only part of its internal pipeline).


   Luis