Index: Applications/Tutorial/Step7.cpp =================================================================== --- Applications/Tutorial/Step7.cpp (revision 22188) +++ Applications/Tutorial/Step7.cpp (working copy) @@ -61,6 +61,7 @@ mitk::RenderingManager::GetInstance()->RequestUpdateAll(); std::cout << "8"; + surfaceCreator->Delete(); } std::cout << "9"; Index: Core/Code/Controllers/mitkRenderingManager.cpp =================================================================== --- Core/Code/Controllers/mitkRenderingManager.cpp (revision 22188) +++ Core/Code/Controllers/mitkRenderingManager.cpp (working copy) @@ -191,6 +191,9 @@ renderWindow->RemoveObserver(callbacks_it->second.commands[0u]); renderWindow->RemoveObserver(callbacks_it->second.commands[1u]); renderWindow->RemoveObserver(callbacks_it->second.commands[2u]); + callbacks_it->second.commands[0u]->Delete(); + callbacks_it->second.commands[1u]->Delete(); + callbacks_it->second.commands[2u]->Delete(); this->m_RenderWindowCallbacksList.erase(callbacks_it); RenderWindowVector::iterator rw_it = std::find( m_AllRenderWindows.begin(), m_AllRenderWindows.end(), renderWindow ); Index: Core/Code/Rendering/mitkGeometry2DDataMapper2D.h =================================================================== --- Core/Code/Rendering/mitkGeometry2DDataMapper2D.h (revision 22188) +++ Core/Code/Rendering/mitkGeometry2DDataMapper2D.h (working copy) @@ -24,6 +24,7 @@ #include "mitkSurfaceMapper2D.h" #include "mitkDataStorage.h" #include "mitkDataNode.h" +#include "mitkWeakPointer.h" namespace mitk { @@ -82,7 +83,7 @@ SurfaceMapper2D::Pointer m_SurfaceMapper; - DataStorage::Pointer m_DataStorage; ///< DataStorage that will be searched for sub nodes + mitk::WeakPointer m_DataStorage; ///< DataStorage that will be searched for sub nodes DataNode::Pointer m_ParentNode; ///< parent node that will be used to search for sub nodes typedef std::vector NodesVectorType; Index: Core/Code/Rendering/mitkGeometry2DDataVtkMapper3D.h =================================================================== --- Core/Code/Rendering/mitkGeometry2DDataVtkMapper3D.h (revision 22188) +++ Core/Code/Rendering/mitkGeometry2DDataVtkMapper3D.h (working copy) @@ -23,6 +23,7 @@ #include "mitkBaseVtkMapper3D.h" #include "mitkDataStorage.h" #include "mitkGeometry2DDataToSurfaceFilter.h" +#include "mitkWeakPointer.h" #include #include @@ -202,7 +203,7 @@ bool m_NormalsActorAdded; /** \brief The DataStorage defines which part of the data tree is traversed for renderering. */ - mitk::DataStorage::Pointer m_DataStorage; + mitk::WeakPointer m_DataStorage; /** A default grayscale lookup-table, used for reference */ vtkLookupTable *m_DefaultLookupTable; Index: Core/Code/Rendering/mitkSurfaceMapper2D.cpp =================================================================== --- Core/Code/Rendering/mitkSurfaceMapper2D.cpp (revision 22188) +++ Core/Code/Rendering/mitkSurfaceMapper2D.cpp (working copy) @@ -86,6 +86,7 @@ m_Cutter->Delete(); m_LUT->Delete(); m_PointLocator->Delete(); + m_Stripper->Delete(); } const mitk::Surface *mitk::SurfaceMapper2D::GetInput(void) Index: Core/Code/Testing/mitkFocusManagerTest.cpp =================================================================== --- Core/Code/Testing/mitkFocusManagerTest.cpp (revision 22188) +++ Core/Code/Testing/mitkFocusManagerTest.cpp (working copy) @@ -79,7 +79,9 @@ MITK_TEST_CONDITION_REQUIRED(!focusManager->RemoveElement(element2), "Testing removing from empty list with different object"); MITK_TEST_CONDITION_REQUIRED(!focusManager->RemoveElement(element1), "Testing removing from empty list with different object again"); - focusManager = NULL; + //focusManager = NULL; + focusManager->Delete(); + //TODO: test IsLast() IsFirst() GetFirst() GetLast() GoToNext() GetIter() SetLoop(bool loop) MITK_TEST_END();