[Libreoffice-commits] core.git: include/sfx2 sfx2/inc sfx2/source

Takeshi Abe tabe at fixedpoint.jp
Wed Aug 13 06:54:12 PDT 2014


 include/sfx2/app.hxx            |   20 +++++++++++--------
 include/sfx2/module.hxx         |    5 ----
 sfx2/inc/arrdecl.hxx            |   41 ----------------------------------------
 sfx2/source/appl/appchild.cxx   |    7 ++----
 sfx2/source/appl/appmisc.cxx    |   25 ------------------------
 sfx2/source/appl/appreg.cxx     |    7 ++----
 sfx2/source/appl/childwin.cxx   |    9 +++-----
 sfx2/source/appl/module.cxx     |    9 +++-----
 sfx2/source/appl/workwin.cxx    |    5 +---
 sfx2/source/inc/appdata.hxx     |    8 -------
 sfx2/source/menu/mnuitem.cxx    |   17 +++++++---------
 sfx2/source/statbar/stbitem.cxx |   17 +++++++---------
 sfx2/source/toolbox/tbxitem.cxx |   17 +++++++---------
 13 files changed, 54 insertions(+), 133 deletions(-)

New commits:
commit a247b8257a904372fcc2330bd8820176d4a71ebd
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date:   Tue Aug 12 23:58:14 2014 +0900

    fdo#75757: remove inheritance to std::vector
    
    ... by replacing the following 3 classes with typedefs of std::vector:
     SfxObjectShellArr_Impl / SfxViewFrameArr_Impl / SfxViewShellArr_Impl
    and the following 4 with typedefs of boost::ptr_vector:
     SfxChildWinFactArr_Impl / SfxMenuCtrlFactArr_Impl /
     SfxStbCtrlFactArr_Impl / SfxTbxCtrlFactArr_Impl
    
    Change-Id: I1754bd19ec418a3e7ba5c47fb6d8568e8fca9b29
    Reviewed-on: https://gerrit.libreoffice.org/10891
    Reviewed-by: David Tardon <dtardon at redhat.com>
    Tested-by: David Tardon <dtardon at redhat.com>

diff --git a/include/sfx2/app.hxx b/include/sfx2/app.hxx
index 0a11a06..ca22000 100644
--- a/include/sfx2/app.hxx
+++ b/include/sfx2/app.hxx
@@ -35,7 +35,12 @@
 // header file because in former times SfxApplication was derived from it
 #include <vcl/svapp.hxx>
 
+#include <sfx2/childwin.hxx>
+#include <sfx2/mnuitem.hxx>
 #include <sfx2/shell.hxx>
+#include <sfx2/stbitem.hxx>
+#include <sfx2/tbxctrl.hxx>
+#include <boost/ptr_container/ptr_vector.hpp>
 #include <vector>
 
 class Timer;
@@ -51,32 +56,31 @@ class AppSettings;
 struct SfxChildWinContextFactory;
 class SfxAppData_Impl;
 class SfxBindings;
-class SfxChildWinFactArr_Impl;
+typedef boost::ptr_vector<SfxChildWinFactory> SfxChildWinFactArr_Impl;
 class SfxChildWindow;
 class SfxDispatcher;
 class SfxEventConfiguration;
 class SfxEventHint;
 class SfxItemSet;
 class SfxMedium;
-class SfxMenuCtrlFactArr_Impl;
+typedef boost::ptr_vector<SfxMenuCtrlFactory> SfxMenuCtrlFactArr_Impl;
 class SfxNewFileDialog;
 class SfxObjectShell;
-class SfxObjectShellArr_Impl;
+typedef ::std::vector<SfxObjectShell*> SfxObjectShellArr_Impl;
 class SfxProgress;
 class SfxSlotPool;
-class SfxStbCtrlFactArr_Impl;
-class SfxTbxCtrlFactArr_Impl;
+typedef boost::ptr_vector<SfxStbCtrlFactory> SfxStbCtrlFactArr_Impl;
+typedef boost::ptr_vector<SfxTbxCtrlFactory> SfxTbxCtrlFactArr_Impl;
 class SfxTemplateDialog;
 class SfxViewFrame;
-class SfxViewFrameArr_Impl;
+typedef ::std::vector<SfxViewFrame*> SfxViewFrameArr_Impl;
 class SfxViewShell;
-class SfxViewShellArr_Impl;
+typedef ::std::vector<SfxViewShell*> SfxViewShellArr_Impl;
 class StarBASIC;
 class SfxWorkWindow;
 class SfxFilterMatcher;
 class SfxModule;
 class SfxModule;
-typedef ::std::vector<SfxModule*> SfxModuleArr_Impl;
 class Window;
 struct SfxChildWinFactory;
 struct SfxMenuCtrlFactory;
diff --git a/include/sfx2/module.hxx b/include/sfx2/module.hxx
index 9dbfbad..cf9130f 100644
--- a/include/sfx2/module.hxx
+++ b/include/sfx2/module.hxx
@@ -21,6 +21,7 @@
 #define _SFXMOD_HXX     // external
 
 #include <sal/config.h>
+#include <sfx2/app.hxx>
 #include <sfx2/dllapi.h>
 #include <sfx2/shell.hxx>
 #include <svtools/imgdef.hxx>
@@ -44,10 +45,6 @@ struct SfxChildWinFactory;
 struct SfxMenuCtrlFactory;
 struct SfxStbCtrlFactory;
 struct SfxTbxCtrlFactory;
-class SfxTbxCtrlFactArr_Impl;
-class SfxChildWinFactArr_Impl;
-class SfxMenuCtrlFactArr_Impl;
-class SfxStbCtrlFactArr_Impl;
 class SfxTabPage;
 class Window;
 
diff --git a/sfx2/inc/arrdecl.hxx b/sfx2/inc/arrdecl.hxx
index 1ce03bc..31cd354 100644
--- a/sfx2/inc/arrdecl.hxx
+++ b/sfx2/inc/arrdecl.hxx
@@ -21,47 +21,6 @@
 
 #include <vector>
 
-class SfxObjectShell;
-class SfxObjectShellArr_Impl : public std::vector<SfxObjectShell*> {};
-
-class SfxViewFrame;
-class SfxViewFrameArr_Impl : public std::vector<SfxViewFrame*> {};
-
-class SfxViewShell;
-class SfxViewShellArr_Impl : public std::vector<SfxViewShell*> {};
-
-struct SfxTbxCtrlFactory;
-class SfxTbxCtrlFactArr_Impl : public std::vector<SfxTbxCtrlFactory*>
-{
-public:
-    // de-allocates child objects
-    ~SfxTbxCtrlFactArr_Impl();
-};
-
-struct SfxStbCtrlFactory;
-class SfxStbCtrlFactArr_Impl : public std::vector<SfxStbCtrlFactory*>
-{
-public:
-    // de-allocates child objects
-    ~SfxStbCtrlFactArr_Impl();
-};
-
-struct SfxMenuCtrlFactory;
-class SfxMenuCtrlFactArr_Impl : public std::vector<SfxMenuCtrlFactory*>
-{
-public:
-    // de-allocates child objects
-    ~SfxMenuCtrlFactArr_Impl();
-};
-
-struct SfxChildWinFactory;
-class SfxChildWinFactArr_Impl : public std::vector<SfxChildWinFactory*>
-{
-public:
-    // de-allocates child objects
-    ~SfxChildWinFactArr_Impl();
-};
-
 class SfxModule;
 typedef ::std::vector<SfxModule*> SfxModuleArr_Impl;
 
diff --git a/sfx2/source/appl/appchild.cxx b/sfx2/source/appl/appchild.cxx
index 1ab79aa..43ff5f1 100644
--- a/sfx2/source/appl/appchild.cxx
+++ b/sfx2/source/appl/appchild.cxx
@@ -25,7 +25,6 @@
 #include "appdata.hxx"
 #include "workwin.hxx"
 #include <sfx2/childwin.hxx>
-#include "arrdecl.hxx"
 #include <sfx2/templdlg.hxx>
 #include <sfx2/request.hxx>
 #include <sfx2/bindings.hxx>
@@ -50,7 +49,7 @@ void SfxApplication::RegisterChildWindow_Impl( SfxModule *pMod, SfxChildWinFacto
 
     for (sal_uInt16 nFactory=0; nFactory<pAppData_Impl->pFactArr->size(); ++nFactory)
     {
-        if (pFact->nId ==  (*pAppData_Impl->pFactArr)[nFactory]->nId)
+        if (pFact->nId ==  (*pAppData_Impl->pFactArr)[nFactory].nId)
         {
             pAppData_Impl->pFactArr->erase( pAppData_Impl->pFactArr->begin() + nFactory );
         }
@@ -73,7 +72,7 @@ void SfxApplication::RegisterChildWindowContext_Impl( SfxModule *pMod, sal_uInt1
             sal_uInt16 nCount = pFactories->size();
             for (sal_uInt16 nFactory=0; nFactory<nCount; ++nFactory)
             {
-                SfxChildWinFactory *pFac = (*pFactories)[nFactory];
+                SfxChildWinFactory *pFac = &(*pFactories)[nFactory];
                 if ( nId == pFac->nId )
                 {
                     // Factory found, registrer Context here.
@@ -94,7 +93,7 @@ void SfxApplication::RegisterChildWindowContext_Impl( SfxModule *pMod, sal_uInt1
         sal_uInt16 nCount = pFactories->size();
         for (sal_uInt16 nFactory=0; nFactory<nCount; ++nFactory)
         {
-            SfxChildWinFactory *pFac = (*pFactories)[nFactory];
+            SfxChildWinFactory *pFac = &(*pFactories)[nFactory];
             if ( nId == pFac->nId )
             {
                 if ( pMod )
diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx
index 04e9d4e..73d38e3 100644
--- a/sfx2/source/appl/appmisc.cxx
+++ b/sfx2/source/appl/appmisc.cxx
@@ -53,7 +53,6 @@
 #include <sfx2/sfxresid.hxx>
 #include <sfx2/app.hxx>
 #include "appdata.hxx"
-#include "arrdecl.hxx"
 #include <sfx2/tbxctrl.hxx>
 #include <sfx2/stbitem.hxx>
 #include <sfx2/mnuitem.hxx>
@@ -224,28 +223,4 @@ BitmapEx SfxApplication::GetApplicationLogo(long nWidth)
     return aBitmap;
 }
 
-SfxChildWinFactArr_Impl::~SfxChildWinFactArr_Impl()
-{
-    for( const_iterator it = begin(); it != end(); ++it )
-        delete *it;
-}
-
-SfxMenuCtrlFactArr_Impl::~SfxMenuCtrlFactArr_Impl()
-{
-    for( const_iterator it = begin(); it != end(); ++it )
-        delete *it;
-}
-
-SfxStbCtrlFactArr_Impl::~SfxStbCtrlFactArr_Impl()
-{
-    for( const_iterator it = begin(); it != end(); ++it )
-        delete *it;
-}
-
-SfxTbxCtrlFactArr_Impl::~SfxTbxCtrlFactArr_Impl()
-{
-    for( const_iterator it = begin(); it != end(); ++it )
-        delete *it;
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/appl/appreg.cxx b/sfx2/source/appl/appreg.cxx
index a53f987..caa32b1 100644
--- a/sfx2/source/appl/appreg.cxx
+++ b/sfx2/source/appl/appreg.cxx
@@ -22,7 +22,6 @@
 
 #include <sfx2/app.hxx>
 #include "appdata.hxx"
-#include "arrdecl.hxx"
 #include <sfx2/sfxhelp.hxx>
 #include <sfx2/templdlg.hxx>
 #include "inettbc.hxx"
@@ -78,7 +77,7 @@ void SfxApplication::RegisterToolBoxControl_Impl( SfxModule *pMod, SfxTbxCtrlFac
 #ifdef DBG_UTIL
     for ( sal_uInt16 n=0; n<pAppData_Impl->pTbxCtrlFac->size(); n++ )
     {
-        SfxTbxCtrlFactory *pF = (*pAppData_Impl->pTbxCtrlFac)[n];
+        SfxTbxCtrlFactory *pF = &(*pAppData_Impl->pTbxCtrlFac)[n];
         if ( pF->nTypeId && pF->nTypeId == pFact->nTypeId &&
             (pF->nSlotId == pFact->nSlotId || pF->nSlotId == 0) )
         {
@@ -103,7 +102,7 @@ void SfxApplication::RegisterStatusBarControl_Impl( SfxModule *pMod, SfxStbCtrlF
 #ifdef DBG_UTIL
     for ( sal_uInt16 n=0; n<pAppData_Impl->pStbCtrlFac->size(); n++ )
     {
-        SfxStbCtrlFactory *pF = (*pAppData_Impl->pStbCtrlFac)[n];
+        SfxStbCtrlFactory *pF = &(*pAppData_Impl->pStbCtrlFac)[n];
         if ( pF->nTypeId && pF->nTypeId == pFact->nTypeId &&
             (pF->nSlotId == pFact->nSlotId || pF->nSlotId == 0) )
         {
@@ -128,7 +127,7 @@ void SfxApplication::RegisterMenuControl_Impl( SfxModule *pMod, SfxMenuCtrlFacto
 #ifdef DBG_UTIL
     for ( sal_uInt16 n=0; n<pAppData_Impl->pMenuCtrlFac->size(); n++ )
     {
-        SfxMenuCtrlFactory *pF = (*pAppData_Impl->pMenuCtrlFac)[n];
+        SfxMenuCtrlFactory *pF = &(*pAppData_Impl->pMenuCtrlFac)[n];
         if ( pF->nTypeId && pF->nTypeId == pFact->nTypeId &&
             (pF->nSlotId == pFact->nSlotId || pF->nSlotId == 0) )
         {
diff --git a/sfx2/source/appl/childwin.cxx b/sfx2/source/appl/childwin.cxx
index 1397e34..50634e7 100644
--- a/sfx2/source/appl/childwin.cxx
+++ b/sfx2/source/appl/childwin.cxx
@@ -32,7 +32,6 @@
 
 #include <sfx2/childwin.hxx>
 #include <sfx2/app.hxx>
-#include "arrdecl.hxx"
 #include <sfx2/bindings.hxx>
 #include <sfx2/module.hxx>
 #include <sfx2/dockwin.hxx>
@@ -205,7 +204,7 @@ SfxChildWindow* SfxChildWindow::CreateChildWindow( sal_uInt16 nId,
         SfxChildWinFactArr_Impl &rFactories = pApp->GetChildWinFactories_Impl();
         for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
         {
-            pFact = rFactories[nFactory];
+            pFact = &rFactories[nFactory];
             if ( pFact->nId == nId )
             {
                 SfxChildWinInfo& rFactInfo = pFact->aInfo;
@@ -236,7 +235,7 @@ SfxChildWindow* SfxChildWindow::CreateChildWindow( sal_uInt16 nId,
             SfxChildWinFactArr_Impl &rFactories = *pFactories;
             for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
             {
-                pFact = rFactories[nFactory];
+                pFact = &rFactories[nFactory];
                 if ( pFact->nId == nId )
                 {
                     SfxChildWinInfo& rFactInfo = pFact->aInfo;
@@ -429,7 +428,7 @@ void SfxChildWindow::CreateContext( sal_uInt16 nContextId, SfxBindings& rBinding
             SfxChildWinFactArr_Impl &rFactories = *pFactories;
             for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
             {
-                pFact = rFactories[nFactory];
+                pFact = &rFactories[nFactory];
                 if ( pFact->nId == GetType() )
                 {
                     DBG_ASSERT( pFact->pArr, "No context registered!" );
@@ -460,7 +459,7 @@ void SfxChildWindow::CreateContext( sal_uInt16 nContextId, SfxBindings& rBinding
         SfxChildWinFactArr_Impl &rFactories = pApp->GetChildWinFactories_Impl();
         for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
         {
-            pFact = rFactories[nFactory];
+            pFact = &rFactories[nFactory];
             if ( pFact->nId == GetType() )
             {
                 DBG_ASSERT( pFact->pArr, "No context registered!" );
diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx
index fe416c3..3c783fe 100644
--- a/sfx2/source/appl/module.cxx
+++ b/sfx2/source/appl/module.cxx
@@ -23,7 +23,6 @@
 #include <cstdarg>
 #include <sfx2/module.hxx>
 #include <sfx2/app.hxx>
-#include "arrdecl.hxx"
 #include <sfx2/sfxresid.hxx>
 #include <sfx2/msgpool.hxx>
 #include <sfx2/tbxctrl.hxx>
@@ -190,7 +189,7 @@ void SfxModule::RegisterChildWindow(SfxChildWinFactory *pFact)
 
     for (sal_uInt16 nFactory=0; nFactory<pImpl->pFactArr->size(); ++nFactory)
     {
-        if (pFact->nId ==  (*pImpl->pFactArr)[nFactory]->nId)
+        if (pFact->nId ==  (*pImpl->pFactArr)[nFactory].nId)
         {
             pImpl->pFactArr->erase( pImpl->pFactArr->begin() + nFactory );
             SAL_WARN("sfx.appl", "ChildWindow registered multiple times!");
@@ -211,7 +210,7 @@ void SfxModule::RegisterToolBoxControl( SfxTbxCtrlFactory *pFact )
 #ifdef DBG_UTIL
     for ( sal_uInt16 n=0; n<pImpl->pTbxCtrlFac->size(); n++ )
     {
-        SfxTbxCtrlFactory *pF = (*pImpl->pTbxCtrlFac)[n];
+        SfxTbxCtrlFactory *pF = &(*pImpl->pTbxCtrlFac)[n];
         if ( pF->nTypeId && pF->nTypeId == pFact->nTypeId &&
             (pF->nSlotId == pFact->nSlotId || pF->nSlotId == 0) )
         {
@@ -233,7 +232,7 @@ void SfxModule::RegisterStatusBarControl( SfxStbCtrlFactory *pFact )
 #ifdef DBG_UTIL
     for ( sal_uInt16 n=0; n<pImpl->pStbCtrlFac->size(); n++ )
     {
-        SfxStbCtrlFactory *pF = (*pImpl->pStbCtrlFac)[n];
+        SfxStbCtrlFactory *pF = &(*pImpl->pStbCtrlFac)[n];
         if ( pF->nTypeId && pF->nTypeId == pFact->nTypeId &&
             (pF->nSlotId == pFact->nSlotId || pF->nSlotId == 0) )
         {
@@ -255,7 +254,7 @@ void SfxModule::RegisterMenuControl( SfxMenuCtrlFactory *pFact )
 #ifdef DBG_UTIL
     for ( sal_uInt16 n=0; n<pImpl->pMenuCtrlFac->size(); n++ )
     {
-        SfxMenuCtrlFactory *pF = (*pImpl->pMenuCtrlFac)[n];
+        SfxMenuCtrlFactory *pF = &(*pImpl->pMenuCtrlFac)[n];
         if ( pF->nTypeId && pF->nTypeId == pFact->nTypeId &&
             (pF->nSlotId == pFact->nSlotId || pF->nSlotId == 0) )
         {
diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index ae65b61..b4b1213 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -27,7 +27,6 @@
 #include <sfx2/app.hxx>
 #include "workwin.hxx"
 #include <sfx2/viewfrm.hxx>
-#include "arrdecl.hxx"
 #include <sfx2/module.hxx>
 #include <sfx2/dispatch.hxx>
 #include <sfx2/dockwin.hxx>
@@ -2436,7 +2435,7 @@ void SfxWorkWindow::InitializeChild_Impl(SfxChildWin_Impl *pCW)
         SfxChildWinFactArr_Impl &rFactories = pApp->GetChildWinFactories_Impl();
         for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
         {
-            pFact = rFactories[nFactory];
+            pFact = &rFactories[nFactory];
             if ( pFact->nId == pCW->nSaveId )
             {
                 pCW->aInfo   = pFact->aInfo;
@@ -2465,7 +2464,7 @@ void SfxWorkWindow::InitializeChild_Impl(SfxChildWin_Impl *pCW)
             SfxChildWinFactArr_Impl &rFactories = *pFactories;
             for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
             {
-                pFact = rFactories[nFactory];
+                pFact = &rFactories[nFactory];
                 if ( pFact->nId == pCW->nSaveId )
                 {
                     pCW->aInfo   = pFact->aInfo;
diff --git a/sfx2/source/inc/appdata.hxx b/sfx2/source/inc/appdata.hxx
index 8a5acb6..19fd3ed 100644
--- a/sfx2/source/inc/appdata.hxx
+++ b/sfx2/source/inc/appdata.hxx
@@ -24,6 +24,7 @@
 #include <svl/lstner.hxx>
 #include <svtools/ehdl.hxx>
 #include <vcl/timer.hxx>
+#include <sfx2/app.hxx>
 
 #include <com/sun/star/frame/XModel.hpp>
 
@@ -32,7 +33,6 @@
 
 class SfxApplication;
 class SfxProgress;
-class SfxChildWinFactArr_Impl;
 class SfxDdeDocTopics_Impl;
 class DdeService;
 class SfxItemPool;
@@ -47,12 +47,6 @@ typedef ::std::vector<SfxFrame*> SfxFrameArr_Impl;
 class SvtSaveOptions;
 class SvtHelpOptions;
 class ResMgr;
-class SfxTbxCtrlFactArr_Impl;
-class SfxStbCtrlFactArr_Impl;
-class SfxMenuCtrlFactArr_Impl;
-class SfxViewFrameArr_Impl;
-class SfxViewShellArr_Impl;
-class SfxObjectShellArr_Impl;
 class ResMgr;
 class SfxViewFrame;
 class SfxSlotPool;
diff --git a/sfx2/source/menu/mnuitem.cxx b/sfx2/source/menu/mnuitem.cxx
index ebe6439..ce1d1bb 100644
--- a/sfx2/source/menu/mnuitem.cxx
+++ b/sfx2/source/menu/mnuitem.cxx
@@ -51,7 +51,6 @@
 #include "virtmenu.hxx"
 #include <sfx2/mnuitem.hxx>
 #include <sfx2/tbxctrl.hxx>
-#include "arrdecl.hxx"
 #include <sfx2/module.hxx>
 #include <sfx2/unoctitm.hxx>
 #include <sfx2/viewfrm.hxx>
@@ -272,20 +271,20 @@ SfxMenuControl* SfxMenuControl::CreateControl( sal_uInt16 nId, Menu &rMenu, SfxB
             {
                 SfxMenuCtrlFactArr_Impl &rFactories = *pFactories;
                 for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
-                    if ( rFactories[nFactory]->nTypeId == aSlotType &&
-                         ( ( rFactories[nFactory]->nSlotId == 0 ) ||
-                           ( rFactories[nFactory]->nSlotId == nId) ) )
-                        return rFactories[nFactory]->pCtor( nId, rMenu, rBindings );
+                    if ( rFactories[nFactory].nTypeId == aSlotType &&
+                         ( ( rFactories[nFactory].nSlotId == 0 ) ||
+                           ( rFactories[nFactory].nSlotId == nId) ) )
+                        return rFactories[nFactory].pCtor( nId, rMenu, rBindings );
             }
         }
 
         SfxMenuCtrlFactArr_Impl &rFactories = pApp->GetMenuCtrlFactories_Impl();
 
         for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
-            if ( rFactories[nFactory]->nTypeId == aSlotType &&
-                 ( ( rFactories[nFactory]->nSlotId == 0 ) ||
-                   ( rFactories[nFactory]->nSlotId == nId) ) )
-                return rFactories[nFactory]->pCtor( nId, rMenu, rBindings );
+            if ( rFactories[nFactory].nTypeId == aSlotType &&
+                 ( ( rFactories[nFactory].nSlotId == 0 ) ||
+                   ( rFactories[nFactory].nSlotId == nId) ) )
+                return rFactories[nFactory].pCtor( nId, rMenu, rBindings );
     }
     return 0;
 }
diff --git a/sfx2/source/statbar/stbitem.cxx b/sfx2/source/statbar/stbitem.cxx
index 3de5bcd..942279b 100644
--- a/sfx2/source/statbar/stbitem.cxx
+++ b/sfx2/source/statbar/stbitem.cxx
@@ -33,7 +33,6 @@
 #include <sfx2/stbitem.hxx>
 #include "sfxtypes.hxx"
 #include <sfx2/msg.hxx>
-#include "arrdecl.hxx"
 #include <sfx2/bindings.hxx>
 #include <sfx2/msgpool.hxx>
 #include <sfx2/module.hxx>
@@ -644,19 +643,19 @@ SfxStatusBarControl* SfxStatusBarControl::CreateControl
             {
                 SfxStbCtrlFactArr_Impl &rFactories = *pFactories;
                 for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
-                if ( rFactories[nFactory]->nTypeId == aSlotType &&
-                     ( ( rFactories[nFactory]->nSlotId == 0 ) ||
-                     ( rFactories[nFactory]->nSlotId == nSlotID) ) )
-                    return rFactories[nFactory]->pCtor( nSlotID, nStbId, *pBar );
+                if ( rFactories[nFactory].nTypeId == aSlotType &&
+                     ( ( rFactories[nFactory].nSlotId == 0 ) ||
+                     ( rFactories[nFactory].nSlotId == nSlotID) ) )
+                    return rFactories[nFactory].pCtor( nSlotID, nStbId, *pBar );
             }
         }
 
         SfxStbCtrlFactArr_Impl &rFactories = pApp->GetStbCtrlFactories_Impl();
         for ( sal_uInt16 nFactory = 0; nFactory < rFactories.size(); ++nFactory )
-        if ( rFactories[nFactory]->nTypeId == aSlotType &&
-             ( ( rFactories[nFactory]->nSlotId == 0 ) ||
-             ( rFactories[nFactory]->nSlotId == nSlotID) ) )
-            return rFactories[nFactory]->pCtor( nSlotID, nStbId, *pBar );
+        if ( rFactories[nFactory].nTypeId == aSlotType &&
+             ( ( rFactories[nFactory].nSlotId == 0 ) ||
+             ( rFactories[nFactory].nSlotId == nSlotID) ) )
+            return rFactories[nFactory].pCtor( nSlotID, nStbId, *pBar );
     }
 
     return NULL;
diff --git a/sfx2/source/toolbox/tbxitem.cxx b/sfx2/source/toolbox/tbxitem.cxx
index d4152af..25781db3 100644
--- a/sfx2/source/toolbox/tbxitem.cxx
+++ b/sfx2/source/toolbox/tbxitem.cxx
@@ -76,7 +76,6 @@
 #include <sfx2/msgpool.hxx>
 #include "statcach.hxx"
 #include <sfx2/viewfrm.hxx>
-#include "arrdecl.hxx"
 #include "sfxtypes.hxx"
 #include <sfx2/genlink.hxx>
 #include <sfx2/sfxresid.hxx>
@@ -331,7 +330,7 @@ SfxToolBoxControl* SfxToolBoxControl::CreateControl( sal_uInt16 nSlotId, sal_uIn
 
                 // search for a factory with the given slot id
                 for( nFactory = 0; nFactory < nCount; ++nFactory )
-                    if( (rFactories[nFactory]->nTypeId == aSlotType) && (rFactories[nFactory]->nSlotId == nSlotId) )
+                    if( (rFactories[nFactory].nTypeId == aSlotType) && (rFactories[nFactory].nSlotId == nSlotId) )
                         break;
 
                 if( nFactory == nCount )
@@ -339,14 +338,14 @@ SfxToolBoxControl* SfxToolBoxControl::CreateControl( sal_uInt16 nSlotId, sal_uIn
                     // if no factory exists for the given slot id, see if we
                     // have a generic factory with the correct slot type and slot id == 0
                     for ( nFactory = 0; nFactory < nCount; ++nFactory )
-                        if( (rFactories[nFactory]->nTypeId == aSlotType) && (rFactories[nFactory]->nSlotId == 0) )
+                        if( (rFactories[nFactory].nTypeId == aSlotType) && (rFactories[nFactory].nSlotId == 0) )
                             break;
                 }
 
                 if( nFactory < nCount )
                 {
-                    pCtrl = rFactories[nFactory]->pCtor( nSlotId, nTbxId, *pBox );
-                    pCtrl->pImpl->pFact = rFactories[nFactory];
+                    pCtrl = rFactories[nFactory].pCtor( nSlotId, nTbxId, *pBox );
+                    pCtrl->pImpl->pFact = &rFactories[nFactory];
                     return pCtrl;
                 }
             }
@@ -357,7 +356,7 @@ SfxToolBoxControl* SfxToolBoxControl::CreateControl( sal_uInt16 nSlotId, sal_uIn
         const sal_uInt16 nCount = rFactories.size();
 
         for( nFactory = 0; nFactory < nCount; ++nFactory )
-            if( (rFactories[nFactory]->nTypeId == aSlotType) && (rFactories[nFactory]->nSlotId == nSlotId) )
+            if( (rFactories[nFactory].nTypeId == aSlotType) && (rFactories[nFactory].nSlotId == nSlotId) )
                 break;
 
         if( nFactory == nCount )
@@ -365,14 +364,14 @@ SfxToolBoxControl* SfxToolBoxControl::CreateControl( sal_uInt16 nSlotId, sal_uIn
             // if no factory exists for the given slot id, see if we
             // have a generic factory with the correct slot type and slot id == 0
             for( nFactory = 0; nFactory < nCount; ++nFactory )
-                if( (rFactories[nFactory]->nTypeId == aSlotType) && (rFactories[nFactory]->nSlotId == 0) )
+                if( (rFactories[nFactory].nTypeId == aSlotType) && (rFactories[nFactory].nSlotId == 0) )
                     break;
         }
 
         if( nFactory < nCount )
         {
-            pCtrl = rFactories[nFactory]->pCtor( nSlotId, nTbxId, *pBox );
-            pCtrl->pImpl->pFact = rFactories[nFactory];
+            pCtrl = rFactories[nFactory].pCtor( nSlotId, nTbxId, *pBox );
+            pCtrl->pImpl->pFact = &rFactories[nFactory];
             return pCtrl;
         }
     }


More information about the Libreoffice-commits mailing list