summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2017-01-11 17:17:27 +0100
committerMichael Stahl <mstahl@redhat.com>2017-01-11 17:27:52 +0100
commitaa1ee198b5b55d0a92418eb3294c93553e8513dd (patch)
treed0717aeea025ef5a272c5b21e3776bf5ff4cd2b6 /sd
parent4ff1b3589076f66c3d783c3ea6c5f1fd9b9337ed (diff)
tdf#105182 sd: avoid iterating too far in SdOutliner::Initialize()
Considering the valid indexes are extended by "-1" for backwards iterators and "size()" for forward iterators, it's obvious that a not-yet-at-the-end-in-the-other-direction iterator can be incremented once, but not necessarily twice. Why this code even wants to increment it twice isn't obvious to me. Change-Id: I578c8c6202049ebe6dbed41b8276a6bfa0566bbc
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/view/Outliner.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index 959cfa4f4690..396e0ef75469 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -583,7 +583,10 @@ void SdOutliner::Initialize (bool bDirectionIsForward)
// The iterator has pointed to the object one ahead/before the current
// one. Now move it to the one before/ahead the current one.
++maObjectIterator;
- ++maObjectIterator;
+ if (maObjectIterator != sd::outliner::OutlinerContainer(this).end())
+ {
+ ++maObjectIterator;
+ }
}
mbMatchMayExist = true;