diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-13 10:42:32 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-13 11:27:05 +0100 |
commit | e0d59468b156e5cc474b5540e05a6aa92ab5cfa0 (patch) | |
tree | af8e1a2b9208c05e6e4796b98893ec2b3495d6b3 /dbaccess/source | |
parent | 6d20aeeda8a346ac10782d44214a89878fd00c40 (diff) |
loplugin:useuniqueptr in OSingleSelectQueryComposer
Change-Id: I02eb65c7a5a1dfd768e35b596303eb3e49c3dfd0
Reviewed-on: https://gerrit.libreoffice.org/51196
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'dbaccess/source')
-rw-r--r-- | dbaccess/source/core/api/HelperCollections.cxx | 4 | ||||
-rw-r--r-- | dbaccess/source/core/api/HelperCollections.hxx | 2 | ||||
-rw-r--r-- | dbaccess/source/core/api/SingleSelectQueryComposer.cxx | 34 | ||||
-rw-r--r-- | dbaccess/source/core/api/query.cxx | 2 | ||||
-rw-r--r-- | dbaccess/source/core/inc/SingleSelectQueryComposer.hxx | 10 |
5 files changed, 23 insertions, 29 deletions
diff --git a/dbaccess/source/core/api/HelperCollections.cxx b/dbaccess/source/core/api/HelperCollections.cxx index edf1a60c0a1c..c55392c4db98 100644 --- a/dbaccess/source/core/api/HelperCollections.cxx +++ b/dbaccess/source/core/api/HelperCollections.cxx @@ -49,7 +49,7 @@ namespace dbaccess { } - OPrivateColumns* OPrivateColumns::createWithIntrinsicNames( const ::rtl::Reference< ::connectivity::OSQLColumns >& _rColumns, + std::unique_ptr<OPrivateColumns> OPrivateColumns::createWithIntrinsicNames( const ::rtl::Reference< ::connectivity::OSQLColumns >& _rColumns, bool _bCase, ::cppu::OWeakObject& _rParent, ::osl::Mutex& _rMutex ) { std::vector< OUString > aNames; aNames.reserve( _rColumns->get().size() ); @@ -61,7 +61,7 @@ namespace dbaccess xColumn->getPropertyValue( PROPERTY_NAME ) >>= sColumName; aNames.push_back( sColumName ); } - return new OPrivateColumns( _rColumns, _bCase, _rParent, _rMutex, aNames, false ); + return std::unique_ptr<OPrivateColumns>(new OPrivateColumns( _rColumns, _bCase, _rParent, _rMutex, aNames, false )); } void OPrivateColumns::disposing() diff --git a/dbaccess/source/core/api/HelperCollections.hxx b/dbaccess/source/core/api/HelperCollections.hxx index 1e6da30e68b7..dceecbc73158 100644 --- a/dbaccess/source/core/api/HelperCollections.hxx +++ b/dbaccess/source/core/api/HelperCollections.hxx @@ -63,7 +63,7 @@ namespace dbaccess /** creates a columns instance as above, but taking the names from the columns itself */ - static OPrivateColumns* createWithIntrinsicNames( + static std::unique_ptr<OPrivateColumns> createWithIntrinsicNames( const ::rtl::Reference< ::connectivity::OSQLColumns >& _rColumns, bool _bCase, ::cppu::OWeakObject& _rParent, diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx index 04b3bb40e51b..dcd61f42f7e8 100644 --- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx +++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx @@ -264,11 +264,6 @@ OSingleSelectQueryComposer::OSingleSelectQueryComposer(const Reference< XNameAcc OSingleSelectQueryComposer::~OSingleSelectQueryComposer() { - for (auto const& columnCollection : m_aColumnsCollection) - delete columnCollection; - - for (auto const& tableCollection : m_aTablesCollection) - delete tableCollection; } // OComponentHelper @@ -727,10 +722,10 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getTables( ) for (auto const& elem : aTables) aNames.push_back(elem.first); - m_pTables = new OPrivateTables(aTables,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,aNames); + m_pTables.reset( new OPrivateTables(aTables,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,aNames) ); } - return m_pTables; + return m_pTables.get(); } // XColumnsSupplier @@ -739,7 +734,7 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( ) ::connectivity::checkDisposed(OSubComponent::rBHelper.bDisposed); ::osl::MutexGuard aGuard( m_aMutex ); if ( !!m_aCurrentColumns[SelectColumns] ) - return m_aCurrentColumns[SelectColumns]; + return m_aCurrentColumns[SelectColumns].get(); std::vector< OUString> aNames; ::rtl::Reference< OSQLColumns> aSelectColumns; @@ -948,9 +943,9 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( ) if ( aNames.empty() ) m_aCurrentColumns[ SelectColumns ] = OPrivateColumns::createWithIntrinsicNames( aSelectColumns, bCase, *this, m_aMutex ); else - m_aCurrentColumns[ SelectColumns ] = new OPrivateColumns( aSelectColumns, bCase, *this, m_aMutex, aNames ); + m_aCurrentColumns[ SelectColumns ].reset( new OPrivateColumns( aSelectColumns, bCase, *this, m_aMutex, aNames ) ); - return m_aCurrentColumns[SelectColumns]; + return m_aCurrentColumns[SelectColumns].get(); } bool OSingleSelectQueryComposer::setORCriteria(OSQLParseNode const * pCondition, OSQLParseTreeIterator& _rIterator, @@ -1330,20 +1325,19 @@ Reference< XIndexAccess > SAL_CALL OSingleSelectQueryComposer::getParameters( ) std::vector< OUString> aNames; for (auto const& elem : aCols->get()) aNames.push_back(getString(elem->getPropertyValue(PROPERTY_NAME))); - m_aCurrentColumns[ParameterColumns] = new OPrivateColumns(aCols,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,aNames,true); + m_aCurrentColumns[ParameterColumns].reset( new OPrivateColumns(aCols,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,aNames,true) ); } - return m_aCurrentColumns[ParameterColumns]; + return m_aCurrentColumns[ParameterColumns].get(); } void OSingleSelectQueryComposer::clearColumns( const EColumnType _eType ) { - OPrivateColumns* pColumns = m_aCurrentColumns[ _eType ]; + OPrivateColumns* pColumns = m_aCurrentColumns[ _eType ].get(); if ( pColumns != nullptr ) { pColumns->disposing(); - m_aColumnsCollection.push_back( pColumns ); - m_aCurrentColumns[ _eType ] = nullptr; + m_aColumnsCollection.push_back( std::move(m_aCurrentColumns[ _eType ]) ); } } @@ -1354,16 +1348,14 @@ void OSingleSelectQueryComposer::clearCurrentCollections() if (currentColumn) { currentColumn->disposing(); - m_aColumnsCollection.push_back(currentColumn); - currentColumn = nullptr; + m_aColumnsCollection.push_back(std::move(currentColumn)); } } if(m_pTables) { m_pTables->disposing(); - m_aTablesCollection.push_back(m_pTables); - m_pTables = nullptr; + m_aTablesCollection.push_back(std::move(m_pTables)); } } @@ -1379,10 +1371,10 @@ Reference< XIndexAccess > OSingleSelectQueryComposer::setCurrentColumns( EColumn std::vector< OUString> aNames; for (auto const& elem : _rCols->get()) aNames.push_back(getString(elem->getPropertyValue(PROPERTY_NAME))); - m_aCurrentColumns[_eType] = new OPrivateColumns(_rCols,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,aNames,true); + m_aCurrentColumns[_eType].reset( new OPrivateColumns(_rCols,m_xMetaData->supportsMixedCaseQuotedIdentifiers(),*this,m_aMutex,aNames,true) ); } - return m_aCurrentColumns[_eType]; + return m_aCurrentColumns[_eType].get(); } Reference< XIndexAccess > SAL_CALL OSingleSelectQueryComposer::getGroupColumns( ) diff --git a/dbaccess/source/core/api/query.cxx b/dbaccess/source/core/api/query.cxx index d5234c7929dd..f05569d9ba75 100644 --- a/dbaccess/source/core/api/query.cxx +++ b/dbaccess/source/core/api/query.cxx @@ -165,7 +165,7 @@ void OQuery::rebuildColumns() ::rtl::Reference< OSQLColumns > aParseColumns( ::connectivity::parse::OParseColumn::createColumnsForResultSet( xResultSetMeta, xDBMeta,xColumnDefinitions ) ); xColumns = OPrivateColumns::createWithIntrinsicNames( - aParseColumns, xDBMeta->supportsMixedCaseQuotedIdentifiers(), *this, m_aMutex ); + aParseColumns, xDBMeta->supportsMixedCaseQuotedIdentifiers(), *this, m_aMutex ).release(); if ( !xColumns.is() ) throw RuntimeException(); } diff --git a/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx b/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx index d17add7850ea..524ca93cdcca 100644 --- a/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx +++ b/dbaccess/source/core/inc/SingleSelectQueryComposer.hxx @@ -80,8 +80,10 @@ namespace dbaccess ::connectivity::OSQLParser m_aSqlParser; ::connectivity::OSQLParseTreeIterator m_aSqlIterator; // the iterator for the complete statement ::connectivity::OSQLParseTreeIterator m_aAdditiveIterator; // the iterator for the "additive statement" (means without the clauses of the elementary statement) - std::vector<OPrivateColumns*> m_aColumnsCollection; // used for columns and parameters of old queries - std::vector<OPrivateTables*> m_aTablesCollection; + std::vector<std::unique_ptr<OPrivateColumns>> + m_aColumnsCollection; // used for columns and parameters of old queries + std::vector<std::unique_ptr<OPrivateTables>> + m_aTablesCollection; std::vector< OUString > m_aElementaryParts; // the filter/groupby/having/order of the elementary statement @@ -93,8 +95,8 @@ namespace dbaccess css::uno::Reference< css::uno::XComponentContext> m_aContext; css::uno::Reference< css::script::XTypeConverter > m_xTypeConverter; - std::vector<OPrivateColumns*> m_aCurrentColumns; - OPrivateTables* m_pTables; // currently used tables + std::vector<std::unique_ptr<OPrivateColumns>> m_aCurrentColumns; + std::unique_ptr<OPrivateTables> m_pTables; // currently used tables OUString m_aPureSelectSQL; // the pure select statement, without filter/order/groupby/having OUString m_sDecimalSep; |