[Insight-developers] Small modification to ImportImageContainer

Tom Vercauteren tom.vercauteren at m4x.org
Thu Apr 2 05:34:26 EDT 2009


Thanks Luis,

I have committed the patch:
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Common/itkImportImageContainer.h?root=Insight&r1=1.22&r2=1.23&sortby=date
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Common/itkImportImageContainer.txx?root=Insight&r1=1.20&r2=1.21&sortby=date
and the unit test
http://www.itk.org/cgi-bin/viewcvs.cgi/Testing/Code/Common/itkFactoryTestLib.cxx?root=Insight&r1=1.4&r2=1.5&sortby=date

However i haven't implemented your suggestion
(AllocateManagedMemory()) since it could only be called once with the
Reserve function. The other places where AllocateElements is called
are a bit more evolved, e.g. a memcpy is called between
AllocateElements and the assignment of m_ImportPointer.

Tom

On Wed, Apr 1, 2009 at 19:40, Luis Ibanez <luis.ibanez at kitware.com> wrote:
> Hi Tom,
>
> Thanks a lot for sending the patch.
>
> This version look a lot better.
>
> The new implementation of the DeallocateManagedMemory()
> has a better encapsulation.
>
>
> It actually would be nice to have a symmetric method:
>
>              AllocateManagedMemory(),
>
> and to package in it the calls to:
>
>   {
>    m_ImportPointer = this->AllocateElements(size);
>    m_Capacity = size;
>    m_Size = size;
>    m_ContainerManageMemory = true;
>    this->Modified();
>    }
>
> that are repeated in Reserve().
>
>
> but this could be part of a second commit...
>
>
> I have no objections to the patch.
>
>
>       Thanks
>
>
>              Luis
>
>
> ----------------------------------------------------
> On Tue, Mar 31, 2009 at 1:37 PM, Tom Vercauteren
> <tom.vercauteren at m4x.org> wrote:
>> Hi,
>>
>> Sorry for being so noisy on this topic.
>>
>> I have implemented a new version of ImportImageContainer. All the
>> deallocation takes place within
>>  virtual void DeallocateManagedMemory();
>>
>> Here is what this function does:
>>  if (m_ImportPointer && m_ContainerManageMemory) delete [] m_ImportPointer;
>>  m_ImportPointer = 0; m_Capacity = 0; m_Size = 0;
>>
>> I have also put the members of ImportImageContainer back into the
>> private section and added some protected set accessors for them.
>>
>> The attached patch provides all these modifications together with an
>> enhanced  itkObjectFactoryTest2 unit test. itkFactoryTestLib.cxx
>> (which is used by itkObjectFactoryTest2) implements
>> TestImportImageContainer, a class that derives from
>> ImportImageContainer but uses a std::allocator instead of using new
>> and delete .
>>
>> Let me know, if such a patch seems more appropriate.
>>
>> Regards,
>> Tom
>>
>


More information about the Insight-developers mailing list