include/comphelper/weakbag.hxx   |   12 +++++-------
 sw/inc/accmap.hxx                |    5 ++---
 sw/source/core/access/accmap.cxx |   14 +++-----------
 3 files changed, 10 insertions(+), 21 deletions(-)

New commits:
commit 6b88669498eafbe75eb3667f5997886e8b99ded7
Author: Noel Grandin <noel.gran...@collabora.co.uk>
Date:   Sat Apr 7 09:40:08 2018 +0200

    std::list->std::vector in SwAccessibleMap
    
    Change-Id: I8820405b7565e8ec4aff72bd24ddd252d95422e5
    Reviewed-on: https://gerrit.libreoffice.org/52530
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/inc/accmap.hxx b/sw/inc/accmap.hxx
index 5ed3fcfae7e3..f4ed96f3fc59 100644
--- a/sw/inc/accmap.hxx
+++ b/sw/inc/accmap.hxx
@@ -29,7 +29,6 @@
 #include <svx/AccessibleControlShape.hxx>
 #include <o3tl/typed_flags_set.hxx>
 
-#include <list>
 #include <vector>
 #include <memory>
 #include <set>
@@ -67,7 +66,7 @@ namespace vcl { class Window; }
 // the XShape at the same time (indirectly by destroying the accessible
 // shape) leads to an assert, because a client of the Modify is destroyed
 // within a Modify call.
-using SwShapeList_Impl = std::list<css::uno::Reference<css::drawing::XShape>>;
+using SwShapeList_Impl = 
std::vector<css::uno::Reference<css::drawing::XShape>>;
 
 enum class AccessibleStates
 {
@@ -95,7 +94,7 @@ class SwAccessibleMap : public 
::accessibility::IAccessibleViewForwarder,
     ::osl::Mutex maEventMutex;
     SwAccessibleContextMap_Impl *mpFrameMap;
     SwAccessibleShapeMap_Impl *mpShapeMap;
-    SwShapeList_Impl *mpShapes;
+    SwShapeList_Impl mvShapes;
     SwAccessibleEventList_Impl *mpEvents;
     SwAccessibleEventMap_Impl *mpEventMap;
     // #i27301 data structure to keep information about
diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index dbfa3a76f9a3..712b70873507 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -1636,7 +1636,6 @@ void SwAccessibleMap::DoInvalidateShapeFocus()
 SwAccessibleMap::SwAccessibleMap( SwViewShell *pSh ) :
     mpFrameMap( nullptr ),
     mpShapeMap( nullptr ),
-    mpShapes( nullptr ),
     mpEvents( nullptr ),
     mpEventMap( nullptr ),
     mpSelectedParas( nullptr ),
@@ -1699,8 +1698,7 @@ SwAccessibleMap::~SwAccessibleMap()
         mpFrameMap = nullptr;
         delete mpShapeMap;
         mpShapeMap = nullptr;
-        delete mpShapes;
-        mpShapes = nullptr;
+        mvShapes.clear();
         delete mpSelectedParas;
         mpSelectedParas = nullptr;
     }
@@ -2237,9 +2235,7 @@ void SwAccessibleMap::A11yDispose( const SwFrame *pFrame,
                     uno::UNO_QUERY );
                 if( xShape.is() )
                 {
-                    if( !mpShapes )
-                        mpShapes = new SwShapeList_Impl;
-                    mpShapes->push_back( xShape );
+                    mvShapes.push_back( xShape );
                 }
             }
         }
@@ -3024,11 +3020,7 @@ void SwAccessibleMap::FireEvents()
     }
     {
         osl::MutexGuard aGuard( maMutex );
-        if( mpShapes )
-        {
-            delete mpShapes;
-            mpShapes = nullptr;
-        }
+        mvShapes.clear();
     }
 
 }
commit 919ffe3715c8583f0ee329e32bb6163608911d22
Author: Noel Grandin <noel.gran...@collabora.co.uk>
Date:   Sat Apr 7 09:31:50 2018 +0200

    std::list->std::vector in WeakBag
    
    Change-Id: Ic0f0c89cb27fab4d30da1276fb8dc3ad1981a80d
    Reviewed-on: https://gerrit.libreoffice.org/52529
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/comphelper/weakbag.hxx b/include/comphelper/weakbag.hxx
index f23f9227057e..981a6c834e36 100644
--- a/include/comphelper/weakbag.hxx
+++ b/include/comphelper/weakbag.hxx
@@ -22,7 +22,7 @@
 
 #include <sal/config.h>
 
-#include <list>
+#include <vector>
 #include <com/sun/star/uno/Reference.hxx>
 #include <cppuhelper/weakref.hxx>
 #include <osl/diagnose.h>
@@ -46,7 +46,7 @@ public:
     */
     void add(css::uno::Reference< T > const & e) {
         OSL_ASSERT(e.is());
-        for (typename WeakReferenceList::iterator i(m_list.begin()); i != 
m_list.end();) {
+        for (auto i = m_list.begin(); i != m_list.end();) {
             if (css::uno::Reference< T >(*i).is()) {
                 ++i;
             } else {
@@ -64,8 +64,8 @@ public:
     */
     css::uno::Reference< T > remove() {
         while (!m_list.empty()) {
-            css::uno::Reference< T > r(m_list.front());
-            m_list.pop_front();
+            css::uno::Reference< T > r(m_list.back());
+            m_list.pop_back();
             if (r.is()) {
                 return r;
             }
@@ -74,9 +74,7 @@ public:
     }
 
 private:
-    typedef std::list< css::uno::WeakReference< T > > WeakReferenceList;
-
-    WeakReferenceList m_list;
+    std::vector< css::uno::WeakReference< T > > m_list;
 };
 
 }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to