Hi all,

The type of the modified time in ITK (m_MTime in Object) is itk::TimeStamp 
which in turn has a member:

unsigned long m_ModifiedTime;

So this member can count in the range 0 till ulong max, which is about 4 x 10^9.

For my particular case this member overflows. I'm using the 
itk::VectorContainer and every time an item is inserted Modified() is called 
which increases the unsigned long value. In my case I am using minimal spanning 
trees and a simple algorithm would have N^2 inserts with N the number of points 
of the tree, which is about 5000 for my application so 5000^2 = 25 x 10^6. Then 
I re-use the container in an iterative algorithm, which makes the problem 
worse. I can do about 85 iterations and then it overflows. (This causes my 
filter to never update anymore, even if  I explicitly call modified on it, or 
on the output, or call ResetPipeline().)

A solution to this issue would be to use an unsigned long long for this 
variable. From itkIntTypes.h there is the typedef SizeValueType which may be 
appropriate.

Before I start preparing a patch: Does this seem like a good approach to you?

Regards, Marius

Marius Staring, PhD
Division of Image Processing (LKEB)
Department of Radiology
Leiden University Medical Center
PO Box 9600, 2300 RC Leiden, The Netherlands
phone: +31 (0)71 526 2137, fax: +31 (0)71 524 8256
[email protected]

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers

Reply via email to