From ce5c849e7c998ffaa9e6704652e9c45b5d8ce7df Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@c-s.fr>
Date: Mon, 6 Oct 2008 17:44:25 +0200
Subject: [PATCH] BUG: Fixing ICD bug (reaching end of image)

---
 Code/BasicFilters/otbVectorImageToImageListFilter.txx | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/Code/BasicFilters/otbVectorImageToImageListFilter.txx b/Code/BasicFilters/otbVectorImageToImageListFilter.txx
index 4d4e52705e..be66823147 100644
--- a/Code/BasicFilters/otbVectorImageToImageListFilter.txx
+++ b/Code/BasicFilters/otbVectorImageToImageListFilter.txx
@@ -88,8 +88,6 @@ VectorImageToImageListFilter<TVectorImageType,TImageList>
 
   typedef itk::ImageRegionConstIteratorWithIndex<InputVectorImageType> InputIteratorType;
   typedef itk::ImageRegionIteratorWithIndex<OutputImageType> OutputIteratorType;
-
-  InputIteratorType inputIt(inputPtr,inputPtr->GetRequestedRegion());
   
   std::vector<OutputIteratorType> outputIteratorList;
   
@@ -98,10 +96,13 @@ VectorImageToImageListFilter<TVectorImageType,TImageList>
     {
       outputListIt.Get()->SetBufferedRegion(outputListIt.Get()->GetRequestedRegion());
       outputListIt.Get()->Allocate();
-      outputIteratorList.push_back(OutputIteratorType(outputListIt.Get(),outputListIt.Get()->GetRequestedRegion()));
-      outputIteratorList.back().GoToBegin();
+      OutputIteratorType tmpIt = OutputIteratorType(outputListIt.Get(),outputListIt.Get()->GetRequestedRegion());
+      tmpIt.GoToBegin();
+      outputIteratorList.push_back(tmpIt);
     }
 
+  InputIteratorType inputIt(inputPtr,outputPtr->GetNthElement(0)->GetRequestedRegion());
+
   inputIt.GoToBegin();
   while(!inputIt.IsAtEnd())
     {
-- 
GitLab