[PATCH] Get rid of the slots.cfg mechanism

Tor Lillqvist (via Code Review) gerrit at gerrit.libreoffice.org
Fri Mar 29 03:26:30 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3118

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/18/3118/1

Get rid of the slots.cfg mechanism

I very much doubt anybody is using it. It has never been documented as far as
I can see for OpenOffice.org and even less for LibreOffice. I only found it
mentioned in the "StarOffice 6.0 Software Administration Guide".

Change-Id: I03f272427ef6717e3e3ff957f32ffe1f696d93c9
---
M sfx2/inc/sfx2/app.hxx
M sfx2/inc/sfx2/dispatch.hxx
M sfx2/source/appl/appmisc.cxx
M sfx2/source/control/dispatch.cxx
4 files changed, 3 insertions(+), 150 deletions(-)



diff --git a/sfx2/inc/sfx2/app.hxx b/sfx2/inc/sfx2/app.hxx
index ab88440..bc8613f 100644
--- a/sfx2/inc/sfx2/app.hxx
+++ b/sfx2/inc/sfx2/app.hxx
@@ -251,8 +251,9 @@
     SAL_DLLPRIVATE void         Registrations_Impl();
     SAL_DLLPRIVATE SfxWorkWindow* GetWorkWindow_Impl(const SfxViewFrame *pFrame=0) const;
 
-    // TODO/CLEANUP: still needed?
-    SAL_DLLPRIVATE std::vector<sal_uInt16>* GetDisabledSlotList_Impl();
+    // TODO/CLEANUP: still needed? -- unclear whether this comment
+    // refers to the GetDisabledSlotList_Impl() method which was
+    // already removed, or the below methods?
     SAL_DLLPRIVATE SfxSlotPool& GetAppSlotPool_Impl() const;
     SAL_DLLPRIVATE SfxModule*   GetModule_Impl();
     SAL_DLLPRIVATE ResMgr*      GetOffResManager_Impl();
diff --git a/sfx2/inc/sfx2/dispatch.hxx b/sfx2/inc/sfx2/dispatch.hxx
index f871838..c7aaae3 100644
--- a/sfx2/inc/sfx2/dispatch.hxx
+++ b/sfx2/inc/sfx2/dispatch.hxx
@@ -182,7 +182,6 @@
     SfxItemState        QueryState( sal_uInt16 nSID, const SfxPoolItem* &rpState );
     SfxItemState        QueryState( sal_uInt16 nSID, ::com::sun::star::uno::Any& rAny );
 
-    sal_Bool                IsAllowed( sal_uInt16 nSlot ) const;
     ::com::sun::star::frame::XDispatch*          GetDispatchInterface( const String& );
     void                SetDisableFlags( sal_uInt32 nFlags );
     sal_uInt32              GetDisableFlags() const;
diff --git a/sfx2/source/appl/appmisc.cxx b/sfx2/source/appl/appmisc.cxx
index bd55b24..2cd1336 100644
--- a/sfx2/source/appl/appmisc.cxx
+++ b/sfx2/source/appl/appmisc.cxx
@@ -155,88 +155,6 @@
     return pAppData_Impl->pProgress;
 }
 
-//------------------------------------------------------------------------
-
-std::vector<sal_uInt16>* SfxApplication::GetDisabledSlotList_Impl()
-{
-    sal_Bool bError = sal_False;
-    std::vector<sal_uInt16>* pList = pAppData_Impl->pDisabledSlotList;
-    if ( !pList )
-    {
-        // Is there a slot file?
-        INetURLObject aUserObj( SvtPathOptions().GetUserConfigPath() );
-        aUserObj.insertName( "slots.cfg" );
-        SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aUserObj.GetMainURL( INetURLObject::NO_DECODE ), STREAM_STD_READ );
-        if ( !pStream || pStream->GetError() == ERRCODE_IO_NOTEXISTS )
-        {
-            delete pStream;
-            INetURLObject aObj( SvtPathOptions().GetConfigPath() );
-            aObj.insertName( "slots.cfg" );
-            pStream = ::utl::UcbStreamHelper::CreateStream( aObj.GetMainURL( INetURLObject::NO_DECODE ), STREAM_STD_READ );
-        }
-
-        sal_Bool bSlotsEnabled = SvtInternalOptions().SlotCFGEnabled();
-        sal_Bool bSlots = ( pStream && !pStream->GetError() );
-        if( bSlots && bSlotsEnabled )
-        {
-            // Read Slot file
-            String aTitle  = pStream->ReadUniOrByteString(pStream->GetStreamCharSet());
-            if ( aTitle.CompareToAscii("SfxSlotFile" ) == COMPARE_EQUAL )
-            {
-                sal_uInt16 nCount;
-                (*pStream) >> nCount;
-                pList = pAppData_Impl->pDisabledSlotList =
-                        new std::vector<sal_uInt16>;
-
-                sal_uInt16 nSlot;
-                for ( sal_uInt16 n=0; n<nCount; n++ )
-                {
-                    (*pStream) >> nSlot;
-                    pList->push_back( nSlot );
-                }
-
-                aTitle = pStream->ReadUniOrByteString(pStream->GetStreamCharSet());
-                if ( aTitle.CompareToAscii("END" ) != COMPARE_EQUAL || pStream->GetError() )
-                {
-                    // Read failed
-                    DELETEZ( pList );
-                    bError = sal_True;
-                }
-            }
-            else
-            {
-                // Stream detection failure
-                bError = sal_True;
-            }
-        }
-        else if ( bSlots != bSlotsEnabled )
-        {
-            // If no slot list entry, then no slot file shall exist
-            bError = sal_True;
-        }
-
-        delete pStream;
-    }
-    else if ( pList == (std::vector<sal_uInt16>*) -1L )
-    {
-        return NULL;
-    }
-
-    if ( !pList )
-        pAppData_Impl->pDisabledSlotList = (std::vector<sal_uInt16>*) -1L;
-
-    if ( bError )
-    {
-        // If an entry slot is present, but no or faulty slot file, or a slot
-        // file, but no slot entry, then this is considered to be a
-        // misconfiguration
-        new SfxSpecialConfigError_Impl( SfxResId( RID_SPECIALCONFIG_ERROR ).toString() );
-    }
-
-    return pList;
-}
-
-
 SfxModule* SfxApplication::GetModule_Impl()
 {
     SfxModule* pModule = SfxModule::GetActiveModule();
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index 00d4849..17394c7 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -146,7 +146,6 @@
                                         // 2==ReadOnlyDoc overturned
     sal_uInt16           nFilterCount;  // Number of SIDs in pFilterSIDs
     const sal_uInt16*    pFilterSIDs;   // sorted Array of SIDs
-    std::vector<sal_uInt16>* pDisableList;
     sal_uInt32           nDisableFlags;
 };
 
@@ -307,7 +306,6 @@
 {
     pImp = new SfxDispatcher_Impl;
     bFlushed = sal_True;
-    SfxApplication *pSfxApp = SFX_APP();
 
     pImp->pCachedServ1 = 0;
     pImp->pCachedServ2 = 0;
@@ -324,7 +322,6 @@
     pImp->bFilterEnabling = sal_False;
     pImp->nFilterCount = 0;
     pImp->pFilterSIDs = 0;
-    pImp->pDisableList = pSfxApp->GetDisabledSlotList_Impl();
     pImp->nDisableFlags = 0;
 
     pImp->pParent = pParent;
@@ -1970,11 +1967,6 @@
                 pSlot = 0;
         }
 
-        if ( pSlot && !IsAllowed( nSlot ) )
-        {
-            pSlot = NULL;
-        }
-
         if ( pSlot )
         {
             rServer.SetSlot(pSlot);
@@ -2311,63 +2303,6 @@
         pImp->pCachedServ2 = 0;
         InvalidateBindings_Impl(sal_True);
     }
-}
-
-sal_Bool SfxDispatcher::IsAllowed
-(
-    sal_uInt16 nSlot
-) const
-/*
-    [Description]
-
-    The method checks whether the access is allowed on this interface.
- */
-{
-    if ( !pImp->pDisableList )
-    {
-        return sal_True;
-    }
-
-    // BinSearch in the disable list
-    std::vector<sal_uInt16>& rList = *pImp->pDisableList;
-    sal_uInt16 nCount = rList.size();
-    sal_uInt16 nLow = 0, nMid = 0, nHigh;
-    sal_Bool bFound = sal_False;
-    nHigh = nCount - 1;
-
-    while ( !bFound && nLow <= nHigh )
-    {
-        nMid = (nLow + nHigh) >> 1;
-        DBG_ASSERT( nMid < nCount, "bsearch is buggy" );
-
-        int nDiff = (int) nSlot - (int) rList[nMid];
-        if ( nDiff < 0)
-        {
-            if ( nMid == 0 )
-                break;
-            nHigh = nMid - 1;
-        }
-        else if ( nDiff > 0 )
-        {
-            nLow = nMid + 1;
-            if ( nLow == 0 )
-                break;
-        }
-        else
-            bFound = sal_True;
-    }
-
-#ifdef _DEBUG
-    // Slot found in the List?
-    sal_uInt16 nPos = bFound ? nMid : nLow;
-
-    DBG_ASSERT( nPos <= nCount, "" );
-    DBG_ASSERT( nPos == nCount || nSlot <= rList[nPos], "" );
-    DBG_ASSERT( nPos == 0 || nSlot > rList[nPos-1], "" );
-    DBG_ASSERT( ( (nPos+1) >= nCount ) || nSlot < rList[nPos+1], "" );
-#endif
-
-    return !bFound;
 }
 
 void SfxDispatcher::InvalidateBindings_Impl( sal_Bool bModify )

-- 
To view, visit https://gerrit.libreoffice.org/3118
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I03f272427ef6717e3e3ff957f32ffe1f696d93c9
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Tor Lillqvist <tml at iki.fi>



More information about the LibreOffice mailing list