slideshow/source/engine/shapes/drawshapesubsetting.cxx |   34 ++++++++---------
 1 file changed, 16 insertions(+), 18 deletions(-)

New commits:
commit 122cb4ff9cdeea5c3c9b7a0a60f26cadb13a71fa
Author: Thorsten Behrens <[email protected]>
Date:   Wed Jan 11 00:05:50 2012 +0100

    Fix fdo#43820 - properly initialize iterators before math.

diff --git a/slideshow/source/engine/shapes/drawshapesubsetting.cxx 
b/slideshow/source/engine/shapes/drawshapesubsetting.cxx
index 80c142c..eea1202 100644
--- a/slideshow/source/engine/shapes/drawshapesubsetting.cxx
+++ b/slideshow/source/engine/shapes/drawshapesubsetting.cxx
@@ -725,9 +725,13 @@ namespace slideshow
             class FindNthElementFunctor
             {
             public:
-                FindNthElementFunctor( sal_Int32                               
 nNodeIndex,
-                                       DrawShapeSubsetting::IndexClassificator 
 eClass ) :
+                FindNthElementFunctor( sal_Int32                               
                       nNodeIndex,
+                                       
DrawShapeSubsetting::IndexClassificatorVector::const_iterator& rLastBegin,
+                                       
DrawShapeSubsetting::IndexClassificatorVector::const_iterator& rLastEnd,
+                                       DrawShapeSubsetting::IndexClassificator 
                       eClass ) :
                     mnNodeIndex( nNodeIndex ),
+                    mrLastBegin( rLastBegin ),
+                    mrLastEnd( rLastEnd ),
                     meClass( eClass )
                 {
                 }
@@ -740,8 +744,8 @@ namespace slideshow
                     if( eCurrElemClassification == meClass &&
                         nCurrElemCount == mnNodeIndex )
                     {
-                        maLastBegin = rCurrElemBegin;
-                        maLastEnd = rCurrElemEnd;
+                        mrLastBegin = rCurrElemBegin;
+                        mrLastEnd = rCurrElemEnd;
 
                         return false; // abort iteration, we've
                                       // already found what we've been
@@ -751,20 +755,10 @@ namespace slideshow
                     return true; // keep on truckin'
                 }
 
-                DrawShapeSubsetting::IndexClassificatorVector::const_iterator 
getBeginElement() const
-                {
-                    return maLastBegin;
-                }
-
-                DrawShapeSubsetting::IndexClassificatorVector::const_iterator 
getEndElement() const
-                {
-                    return maLastEnd;
-                }
-
             private:
                 sal_Int32                                                      
 mnNodeIndex;
-                DrawShapeSubsetting::IndexClassificatorVector::const_iterator  
 maLastBegin;
-                DrawShapeSubsetting::IndexClassificatorVector::const_iterator  
 maLastEnd;
+                DrawShapeSubsetting::IndexClassificatorVector::const_iterator& 
 mrLastBegin;
+                DrawShapeSubsetting::IndexClassificatorVector::const_iterator& 
 mrLastEnd;
                 DrawShapeSubsetting::IndexClassificator                        
 meClass;
             };
 
@@ -789,17 +783,21 @@ namespace slideshow
             const IndexClassificator eRequestedClass(
                 mapDocTreeNode( eNodeType ) );
 
+            DrawShapeSubsetting::IndexClassificatorVector::const_iterator 
aLastBegin(rEnd);
+            DrawShapeSubsetting::IndexClassificatorVector::const_iterator 
aLastEnd(rEnd);
+
             // create a nth element functor for the requested class of
             // actions, and nNodeIndex as the target index
             FindNthElementFunctor aFunctor( nNodeIndex,
+                                            aLastBegin,
+                                            aLastEnd,
                                             eRequestedClass );
 
             // find given index in the given range
             iterateActionClassifications( aFunctor, rBegin, rEnd );
 
             return makeTreeNode( maActionClassVector.begin(),
-                                 aFunctor.getBeginElement(),
-                                 aFunctor.getEndElement(),
+                                 aLastBegin, aLastEnd,
                                  eNodeType );
         }
 
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to