]> Creatis software - clitk.git/commitdiff
Add reference count for list of loaded image in the afdb
authordsarrut <dsarrut>
Thu, 24 Mar 2011 07:32:08 +0000 (07:32 +0000)
committerdsarrut <dsarrut>
Thu, 24 Mar 2011 07:32:08 +0000 (07:32 +0000)
segmentation/clitkAnatomicalFeatureDatabase.h
segmentation/clitkAnatomicalFeatureDatabase.txx

index e3591925216d5fe8b6309fb7c2e30996bf3e934f..438cac8bb9ae8265e41f7f57154da52699de8272 100644 (file)
@@ -58,10 +58,7 @@ namespace clitk {
     template<class ImageType>
     typename ImageType::Pointer GetImage(TagType tag, bool reload=false);
     template<class ImageType>
-    void  SetImage(TagType tag, 
-                   std::string f, 
-                   typename ImageType::Pointer image, 
-                   bool write=false);
+    void  SetImage(TagType tag, std::string f, typename ImageType::Pointer image, bool write=false);
     template<class ImageType>
     void ReleaseImage(TagType tag);
     
@@ -73,7 +70,7 @@ namespace clitk {
     std::string m_Filename;
     typedef itk::ImageBase<3> ImageBaseType;
     typedef std::map<TagType, std::string> MapTagType;
-    typedef std::map<TagType, ImageBaseType*> MapTagImageType;
+        typedef std::map<TagType, ImageBaseType*> MapTagImageType; 
     MapTagType m_MapOfTag;
     MapTagImageType m_MapOfImage;
 
index 0a15c6b5631d852323deab7f307318dd1d0ac610..1aad4f6eec882f08f2ee2964feb095b75b4258f6 100644 (file)
@@ -54,6 +54,8 @@ SetImage(TagType tag, std::string f, typename ImageType::Pointer image, bool wri
 {
   SetImageFilename(tag, f);
   m_MapOfImage[tag] = &(*image);
+  // I add a reference count because the cache is not a smartpointer
+  image->SetReferenceCount(image->GetReferenceCount()+1);
   if (write) {
     writeImage<ImageType>(image, f);
   }