Break reference cycles in vtk pipeline
- With this MR, the VTK pipeline no longer requires garbage collection.
- Previously an executive stored itself and its consumers in an information object that was shared among the producer and consumer and caused reference loops.
- Whereas now, a consumer keeps its producers alive by maintaining an internal list of its input algorithms and their output port indices. See
vtkAlgorithmInternals::InputAlgorithms
. -
vtkExecutive::PRODUCER()
andvtkExecutive::CONSUMERS()
are no longer required and those keys are marked deprecated. - Aditionally, the
vtkInformationExecutivePortKey
andvtkInformationExecutivePortVectorKey
classes are not used anymore. - The algorithm <-> executive reference loop is manually severed in their respective
::UnRegisterInternal
methods.
Edited by Jaswant Panchumarti (Kitware)