From 3b7150c0ab5ca40f88ab8c3b914d601501cbf4e7 Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Mon, 4 Jan 2016 22:27:23 +0100 Subject: SotFactory is in fact not used: remove + cleanup Also SotData_Impl is used only in exchange.cxx now. Move there. Change-Id: I548095c2226d92aea4193bb1a3671e2381996435 --- sot/source/base/exchange.cxx | 30 ++++++- sot/source/base/factory.cxx | 203 ------------------------------------------ sot/source/base/object.cxx | 44 --------- sot/source/sdstor/storage.cxx | 70 --------------- 4 files changed, 28 insertions(+), 319 deletions(-) delete mode 100644 sot/source/base/factory.cxx (limited to 'sot/source') diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx index c50a6b77e46c..88de2a64ec4e 100644 --- a/sot/source/base/exchange.cxx +++ b/sot/source/base/exchange.cxx @@ -22,15 +22,17 @@ #include #include #include -#include #include #include #include #include #include +#include #include #include +#include + using namespace::com::sun::star::uno; using namespace::com::sun::star::datatransfer; @@ -208,11 +210,35 @@ namespace struct FormatArray_Impl : public rtl::StaticAggregate< const DataFlavorRepresentation, ImplFormatArray_Impl > {}; + + + typedef std::vector tDataFlavorList; + + struct SotData_Impl + { + tDataFlavorList* pDataFlavorList; + + SotData_Impl(): pDataFlavorList(nullptr) {} + ~SotData_Impl() + { + if (pDataFlavorList) + { + for( tDataFlavorList::iterator aI = pDataFlavorList->begin(), + aEnd = pDataFlavorList->end(); aI != aEnd; ++aI) + { + delete *aI; + } + delete pDataFlavorList; + } + } + }; + + struct ImplData : public rtl::Static {}; } static tDataFlavorList& InitFormats_Impl() { - SotData_Impl * pSotData = SOTDATA(); + SotData_Impl *pSotData = &ImplData::get(); if( !pSotData->pDataFlavorList ) pSotData->pDataFlavorList = new tDataFlavorList(); return *pSotData->pDataFlavorList; diff --git a/sot/source/base/factory.cxx b/sot/source/base/factory.cxx deleted file mode 100644 index 74946ad68821..000000000000 --- a/sot/source/base/factory.cxx +++ /dev/null @@ -1,203 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include - -#include -#include -#include -#include -#include -#include -#include - -/************** class SotData_Impl *********************************************/ -/************************************************************************* -|* SotData_Impl::SotData_Impl -|* -|* Beschreibung -*************************************************************************/ -SotData_Impl::SotData_Impl() - : nSvObjCount( 0 ) - , pFactoryList( nullptr ) - , pSotObjectFactory( nullptr ) - , pSotStorageStreamFactory( nullptr ) - , pSotStorageFactory( nullptr ) - , pDataFlavorList( nullptr ) -{ -} - -SotData_Impl::~SotData_Impl() -{ - if (pDataFlavorList) - { - for( tDataFlavorList::iterator aI = pDataFlavorList->begin(), - aEnd = pDataFlavorList->end(); aI != aEnd; ++aI) - { - delete *aI; - } - delete pDataFlavorList; - } - delete pFactoryList; -} - -/************************************************************************* -|* SOTDATA() -|* -|* Beschreibung -*************************************************************************/ -namespace { struct ImplData : public rtl::Static {}; } -SotData_Impl * SOTDATA() -{ - return &ImplData::get(); -} - -/************** class SotFactory *****************************************/ -/************************************************************************* -|* SotFactory::SotFactory() -|* -|* Beschreibung -*************************************************************************/ - -SotFactory::SotFactory( const SvGlobalName & rName ) - : SvGlobalName ( rName ) - , nSuperCount ( 0 ) - , pSuperClasses ( nullptr ) -{ -#ifdef DBG_UTIL - SvGlobalName aEmptyName; - if( aEmptyName != *this ) - { // wegen Sfx-BasicFactories - DBG_ASSERT( aEmptyName != *this, "create factory without SvGlobalName" ); - if( Find( *this ) ) - { - OSL_FAIL( "create factories with the same unique name" ); - } - } -#endif - SotData_Impl * pSotData = SOTDATA(); - if( !pSotData->pFactoryList ) - pSotData->pFactoryList = new SotFactoryList(); - // muss nach hinten, wegen Reihenfolge beim zerstoeren - pSotData->pFactoryList->push_back( this ); -} - - - -SotFactory::~SotFactory() -{ - delete [] pSuperClasses; -} - -/************************************************************************* -|* SotFactory::Find() -|* -|* Beschreibung -*************************************************************************/ -#ifdef DBG_UTIL -const SotFactory* SotFactory::Find( const SvGlobalName & rFactName ) -{ - SvGlobalName aEmpty; - SotData_Impl * pSotData = SOTDATA(); - if( rFactName != aEmpty && pSotData->pFactoryList ) - { - for ( size_t i = 0, n = pSotData->pFactoryList->size(); i < n; ++i ) { - SotFactory* pFact = (*pSotData->pFactoryList)[ i ]; - if( *pFact == rFactName ) - return pFact; - } - } - - return nullptr; -} -#endif - -/************************************************************************* -|* SotFactory::PutSuperClass() -|* -|* Beschreibung -*************************************************************************/ -void SotFactory::PutSuperClass( const SotFactory * pFact ) -{ - nSuperCount++; - if( !pSuperClasses ) - pSuperClasses = new const SotFactory * [ nSuperCount ]; - else - { - const SotFactory ** pTmp = new const SotFactory * [ nSuperCount ]; - memcpy( static_cast(pTmp), static_cast(pSuperClasses), - sizeof( void * ) * (nSuperCount -1) ); - delete [] pSuperClasses; - pSuperClasses = pTmp; - } - pSuperClasses[ nSuperCount -1 ] = pFact; -} - - -/************************************************************************* -|* SotFactory::IncSvObjectCount() -|* -|* Beschreibung -*************************************************************************/ -void SotFactory::IncSvObjectCount( SotObject * pObj ) -{ - SotData_Impl * pSotData = SOTDATA(); - pSotData->nSvObjCount++; - - if( pObj ) - pSotData->aObjectList.push_back( pObj ); -} - - -/************************************************************************* -|* SotFactory::DecSvObjectCount() -|* -|* Beschreibung -*************************************************************************/ -void SotFactory::DecSvObjectCount( SotObject * pObj ) -{ - SotData_Impl * pSotData = SOTDATA(); - pSotData->nSvObjCount--; - if( pObj ) - pSotData->aObjectList.remove( pObj ); - if( !pSotData->nSvObjCount ) - { - //keine internen und externen Referenzen mehr - } -} - -/************************************************************************* -|* SotFactory::Is() -|* -|* Beschreibung -*************************************************************************/ -bool SotFactory::Is( const SotFactory * pSuperCl ) const -{ - if( this == pSuperCl ) - return true; - - for( sal_uInt16 i = 0; i < nSuperCount; i++ ) - { - if( pSuperClasses[ i ]->Is( pSuperCl ) ) - return true; - } - return false; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sot/source/base/object.cxx b/sot/source/base/object.cxx index 25b198d0a2c4..79a139aa04c2 100644 --- a/sot/source/base/object.cxx +++ b/sot/source/base/object.cxx @@ -18,60 +18,16 @@ */ #include -#include -#include -/************** class SotObject ******************************************/ -class SotObjectFactory : public SotFactory -{ -public: - explicit SotObjectFactory(const SvGlobalName& rName) - : SotFactory( rName ) - { - } -}; - -SotFactory * SotObject::ClassFactory() -{ - SotFactory **ppFactory = &(SOTDATA()->pSotObjectFactory); - if( !*ppFactory ) - { - *ppFactory = new SotObjectFactory( - SvGlobalName( 0xf44b7830, 0xf83c, 0x11d0, - 0xaa, 0xa1, 0x0, 0xa0, 0x24, 0x9d, 0x55, 0x90 ) ); - } - return *ppFactory; -} - -void * SotObject::Cast( const SotFactory * pFact ) -{ - void * pRet = nullptr; - if( !pFact || pFact == ClassFactory() ) - pRet = this; - return pRet; -} - -/************************************************************************* -|* SotObject::SotObject() -|* -|* Beschreibung -*************************************************************************/ SotObject::SotObject() : nOwnerLockCount( 0 ) , bOwner ( true ) , bInClose ( false ) { - SotFactory::IncSvObjectCount( this ); } -/************************************************************************* -|* -|* SotObject::~SotObject() -|* -*************************************************************************/ SotObject::~SotObject() { - SotFactory::DecSvObjectCount( this ); } void SotObject::OwnerLock diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx index 63c8cbdb5463..9cdc66ea5e14 100644 --- a/sot/source/sdstor/storage.cxx +++ b/sot/source/sdstor/storage.cxx @@ -36,46 +36,10 @@ #include #include -#include -#include - #include using namespace ::com::sun::star; -/************** class SotStorageStream ***********************************/ -class SotStorageStreamFactory : public SotFactory -{ -public: - explicit SotStorageStreamFactory(const SvGlobalName& rName) - : SotFactory(rName) - { - } -}; - -SotFactory * SotStorageStream::ClassFactory() -{ - SotFactory **ppFactory = &(SOTDATA()->pSotStorageStreamFactory); - if( !*ppFactory ) - { - *ppFactory = new SotStorageStreamFactory( - SvGlobalName( 0xd7deb420, 0xf902, 0x11d0, - 0xaa, 0xa1, 0x0, 0xa0, 0x24, 0x9d, 0x55, 0x90 ) ); - (*ppFactory)->PutSuperClass( SotObject::ClassFactory() ); - } - return *ppFactory; -} - -void * SotStorageStream::Cast( const SotFactory * pFact ) -{ - void * pRet = nullptr; - if( !pFact || pFact == ClassFactory() ) - pRet = this; - if( !pRet ) - pRet = SotObject::Cast( pFact ); - return pRet; -} - SvLockBytesRef MakeLockBytes_Impl( const OUString & rName, StreamMode nMode ) { SvLockBytesRef xLB; @@ -291,40 +255,6 @@ bool SotStorageStream::SetProperty( const OUString& rName, const css::uno::Any& } } -/************** class SotStorage ****************************************** -*************************************************************************/ -class SotStorageFactory : public SotFactory -{ -public: - explicit SotStorageFactory(const SvGlobalName & rName) - : SotFactory(rName) - { - } -}; - -SotFactory * SotStorage::ClassFactory() -{ - SotFactory **ppFactory = &(SOTDATA()->pSotStorageFactory); - if( !*ppFactory ) - { - *ppFactory = new SotStorageFactory( - SvGlobalName( 0x980ce7e0, 0xf905, 0x11d0, - 0xaa, 0xa1, 0x0, 0xa0, 0x24, 0x9d, 0x55, 0x90 ) ); - (*ppFactory)->PutSuperClass( SotObject::ClassFactory() ); - } - return *ppFactory; -} - -void * SotStorage::Cast( const SotFactory * pFact ) -{ - void * pRet = nullptr; - if( !pFact || pFact == ClassFactory() ) - pRet = this; - if( !pRet ) - pRet = SotObject::Cast( pFact ); - return pRet; -} - /************************************************************************ |* |* SotStorage::SotStorage() -- cgit v1.2.3