sd/source/ui/presenter/CanvasUpdateRequester.cxx |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

New commits:
commit 670631cae260263e4822d8aa63bc5c2e4349c796
Author: Michael Stahl <mst...@redhat.com>
Date:   Thu May 4 22:18:05 2017 +0200

    sd: oops, skipped one entry on every erase by incrementing
    
    Thanks Noel for the hint.
    
    Change-Id: I4992ce6d92ea185c7ab2f3ca452d3920204bb9f7

diff --git a/sd/source/ui/presenter/CanvasUpdateRequester.cxx 
b/sd/source/ui/presenter/CanvasUpdateRequester.cxx
index ee385533773f..456c37d43a58 100644
--- a/sd/source/ui/presenter/CanvasUpdateRequester.cxx
+++ b/sd/source/ui/presenter/CanvasUpdateRequester.cxx
@@ -44,10 +44,14 @@ std::shared_ptr<CanvasUpdateRequester> 
CanvasUpdateRequester::Instance (
     static std::vector<std::pair<
         uno::WeakReference<rendering::XSpriteCanvas>,
         std::weak_ptr<CanvasUpdateRequester>>> s_RequesterMap;
-    for (auto it = s_RequesterMap.begin(); it != s_RequesterMap.end(); ++it)
+    for (auto it = s_RequesterMap.begin(); it != s_RequesterMap.end(); )
     {
         uno::Reference<rendering::XSpriteCanvas> const xCanvas(it->first);
-        if (xCanvas == rxSharedCanvas)
+        if (!xCanvas.is())
+        {
+            it = s_RequesterMap.erase(it); // remove stale entry
+        }
+        else if (xCanvas == rxSharedCanvas)
         {
             std::shared_ptr<CanvasUpdateRequester> pRequester(it->second);
             if (pRequester)
@@ -64,10 +68,7 @@ std::shared_ptr<CanvasUpdateRequester> 
CanvasUpdateRequester::Instance (
         }
         else
         {
-            if (!xCanvas.is())
-            {
-                it = s_RequesterMap.erase(it); // remove stale entry
-            }
+            ++it;
         }
     }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to