summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-08-02 12:45:01 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-08-03 09:07:51 +0200
commitcd6486b118c8453f1e494ddeb97021f0ef9181c4 (patch)
tree97df7a0c9579e68d10a149e006a83e92d692eb59
parent28dc7c3c5efe78d8e43abec89fb904100ace5d41 (diff)
loplugin:useuniqueptr in BasicManager
Change-Id: I9774a1651c8754f575ebb4b98fbddee5a99a7719 Reviewed-on: https://gerrit.libreoffice.org/58485 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--basic/source/basmgr/basmgr.cxx7
-rw-r--r--basic/source/uno/namecont.cxx2
-rw-r--r--basic/source/uno/scriptcont.cxx5
-rw-r--r--include/basic/basmgr.hxx11
4 files changed, 3 insertions, 22 deletions
diff --git a/basic/source/basmgr/basmgr.cxx b/basic/source/basmgr/basmgr.cxx
index 1a4948ab9081..e4841ce100e9 100644
--- a/basic/source/basmgr/basmgr.cxx
+++ b/basic/source/basmgr/basmgr.cxx
@@ -828,13 +828,6 @@ BasicManager::~BasicManager()
Broadcast( SfxHint( SfxHintId::Dying) );
}
-void BasicManager::LegacyDeleteBasicManager( BasicManager*& _rpManager )
-{
- delete _rpManager;
- _rpManager = nullptr;
-}
-
-
bool BasicManager::HasExeCode( const OUString& sLib )
{
StarBASIC* pLib = GetLib(sLib);
diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx
index 910cf3fd9db2..6fd58bcdf08e 100644
--- a/basic/source/uno/namecont.cxx
+++ b/basic/source/uno/namecont.cxx
@@ -383,7 +383,7 @@ SfxLibraryContainer::~SfxLibraryContainer()
{
if( mbOwnBasMgr )
{
- BasicManager::LegacyDeleteBasicManager( mpBasMgr );
+ delete mpBasMgr;
}
}
diff --git a/basic/source/uno/scriptcont.cxx b/basic/source/uno/scriptcont.cxx
index 14b11e5f0e99..dda0c4824afa 100644
--- a/basic/source/uno/scriptcont.cxx
+++ b/basic/source/uno/scriptcont.cxx
@@ -336,14 +336,11 @@ void SfxScriptLibraryContainer::importFromOldStorage( const OUString& aFile )
auto xStorage = tools::make_ref<SotStorage>( false, aFile );
if( xStorage->GetError() == ERRCODE_NONE )
{
- BasicManager* pBasicManager = new BasicManager( *(xStorage.get()), aFile );
+ std::unique_ptr<BasicManager> pBasicManager(new BasicManager( *(xStorage.get()), aFile ));
// Set info
LibraryContainerInfo aInfo( this, nullptr, static_cast< OldBasicPassword* >( this ) );
pBasicManager->SetLibraryContainerInfo( aInfo );
-
- // Now the libraries should be copied to this SfxScriptLibraryContainer
- BasicManager::LegacyDeleteBasicManager( pBasicManager );
}
}
diff --git a/include/basic/basmgr.hxx b/include/basic/basmgr.hxx
index 5e70e6ea138b..3229155c6ede 100644
--- a/include/basic/basmgr.hxx
+++ b/include/basic/basmgr.hxx
@@ -130,20 +130,11 @@ protected:
static bool ImplEncryptStream( SvStream& rStream );
BasicLibInfo* FindLibInfo( StarBASIC const * pBasic );
static void CheckModules( StarBASIC* pBasic, bool bReference );
- virtual ~BasicManager() override;
public:
BasicManager( SotStorage& rStorage, const OUString& rBaseURL, StarBASIC* pParentFromStdLib = nullptr, OUString const * pLibPath = nullptr, bool bDocMgr = false );
BasicManager( StarBASIC* pStdLib, OUString const * pLibPath = nullptr, bool bDocMgr = false );
-
- /** deletes the given BasicManager instance
-
- This method is necessary since normally, BasicManager instances are owned by the BasicManagerRepository,
- and expected to be deleted by the repository only. However, there exists quite some legacy code,
- which needs to explicitly delete a BasicManager itself. This code must not use the (protected)
- destructor, but LegacyDeleteBasicManager.
- */
- static void LegacyDeleteBasicManager( BasicManager*& _rpManager );
+ virtual ~BasicManager() override;
void SetStorageName( const OUString& rName ) { maStorageName = rName; }
const OUString& GetStorageName() const { return maStorageName; }