connectivity/source/drivers/dbase/DTable.cxx | 19 +++++++++---------- connectivity/source/drivers/file/FTable.cxx | 9 +-------- connectivity/source/drivers/mork/MQueryHelper.cxx | 21 +++++++-------------- connectivity/source/drivers/mork/MQueryHelper.hxx | 4 ++-- connectivity/source/inc/file/FTable.hxx | 2 +- 5 files changed, 20 insertions(+), 35 deletions(-)
New commits: commit 0ce677434f5eb1ff388d0f33306b9dba9b5beaab Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Thu May 3 13:50:52 2018 +0200 loplugin:useuniqueptr in MQueryHelper Change-Id: Ic76213b5bfa31310d8633ac7a8db7e4cc9020710 Reviewed-on: https://gerrit.libreoffice.org/53864 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/connectivity/source/drivers/mork/MQueryHelper.cxx b/connectivity/source/drivers/mork/MQueryHelper.cxx index ffa7a2082e9a..0c0027c13733 100644 --- a/connectivity/source/drivers/mork/MQueryHelper.cxx +++ b/connectivity/source/drivers/mork/MQueryHelper.cxx @@ -88,17 +88,14 @@ void MQueryHelper::setAddressbook(OUString const &ab) m_aAddressbook = ab; } -void MQueryHelper::append(MQueryHelperResultEntry* resEnt) +void MQueryHelper::append(std::unique_ptr<MQueryHelperResultEntry> resEnt) { - if ( resEnt != nullptr ) { - m_aResults.push_back( resEnt ); - } + assert(resEnt); + m_aResults.push_back( std::move(resEnt) ); } void MQueryHelper::clear_results() { - for (auto const& result : m_aResults) - delete result; m_aResults.clear(); } @@ -116,7 +113,7 @@ MQueryHelper::getByIndex(sal_uInt32 nRow) if ( nRow < 1 ) { return nullptr; } - return m_aResults[nRow -1]; + return m_aResults[nRow -1].get(); } sal_Int32 MQueryHelper::getResultCount() const @@ -225,7 +222,7 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection, MQueryExpression } } - MQueryHelperResultEntry* entry = new MQueryHelperResultEntry(); + std::unique_ptr<MQueryHelperResultEntry> entry(new MQueryHelperResultEntry()); for (auto const& cell : row.second) { std::string column = pMork->getColumn(cell.first); @@ -236,17 +233,13 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection, MQueryExpression entry->setValue(key, valueOUString); } bool result = true; - for (auto const& elem : entryMatchedByExpression(this, &expr, entry)) + for (auto const& elem : entryMatchedByExpression(this, &expr, entry.get())) { result = result && elem; } if (result) { - append(entry); - } - else - { - delete entry; + append(std::move(entry)); } } } diff --git a/connectivity/source/drivers/mork/MQueryHelper.hxx b/connectivity/source/drivers/mork/MQueryHelper.hxx index 75db029ae4a7..cc240d36b0f3 100644 --- a/connectivity/source/drivers/mork/MQueryHelper.hxx +++ b/connectivity/source/drivers/mork/MQueryHelper.hxx @@ -159,11 +159,11 @@ namespace connectivity class MQueryHelper final { private: - typedef std::vector< MQueryHelperResultEntry* > resultsArray; + typedef std::vector< std::unique_ptr<MQueryHelperResultEntry> > resultsArray; mutable ::osl::Mutex m_aMutex; resultsArray m_aResults; - void append(MQueryHelperResultEntry* resEnt ); + void append(std::unique_ptr<MQueryHelperResultEntry> resEnt ); void clear_results(); OColumnAlias m_rColumnAlias; ErrorDescriptor m_aError; commit 7baed0c028df4b5215557e8410467277d068021b Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Thu May 3 13:48:14 2018 +0200 loplugin:useuniqueptr in OFileTable Change-Id: I74f21220b71703a18d1ae85f5f50397355304153 Reviewed-on: https://gerrit.libreoffice.org/53863 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx index 87be422f133c..815d45ba4635 100644 --- a/connectivity/source/drivers/dbase/DTable.cxx +++ b/connectivity/source/drivers/dbase/DTable.cxx @@ -812,7 +812,7 @@ bool ODbaseTable::fetchRow(OValueRefRow& _rRow, const OSQLColumns & _rCols, bool if ( ( nByteOffset + nLen) > m_nBufferSize ) break; // length doesn't match buffer size. - char *pData = reinterpret_cast<char *>(m_pBuffer + nByteOffset); + char *pData = reinterpret_cast<char *>(m_pBuffer.get() + nByteOffset); if (nType == DataType::CHAR || nType == DataType::VARCHAR) { @@ -1458,7 +1458,7 @@ bool ODbaseTable::InsertRow(OValueRefVector& rRow, const Reference<XIndexAccess> if (!AllocBuffer()) return false; - memset(m_pBuffer, 0, m_aHeader.recordLength); + memset(m_pBuffer.get(), 0, m_aHeader.recordLength); m_pBuffer[0] = ' '; // Copy new row completely: @@ -1518,7 +1518,7 @@ bool ODbaseTable::UpdateRow(OValueRefVector& rRow, OValueRefRow& pOrgRow, const // position on desired record: std::size_t nPos = m_aHeader.headerLength + static_cast<long>(m_nFilePos-1) * m_aHeader.recordLength; m_pFileStream->Seek(nPos); - m_pFileStream->ReadBytes(m_pBuffer, m_aHeader.recordLength); + m_pFileStream->ReadBytes(m_pBuffer.get(), m_aHeader.recordLength); std::size_t nMemoFileSize( 0 ); if (HasMemoFields() && m_pMemoStream) @@ -1793,7 +1793,7 @@ bool ODbaseTable::UpdateBuffer(OValueRefVector& rRow, const OValueRefRow& pOrgRo pIndex->Insert(m_nFilePos, thisColVal); } - char* pData = reinterpret_cast<char *>(m_pBuffer + nByteOffset); + char* pData = reinterpret_cast<char *>(m_pBuffer.get() + nByteOffset); if (thisColIsNull) { if ( bSetZero ) @@ -2591,7 +2591,7 @@ bool ODbaseTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int32 if (m_pFileStream->GetError() != ERRCODE_NONE) goto Error; - std::size_t nRead = m_pFileStream->ReadBytes(m_pBuffer, nEntryLen); + std::size_t nRead = m_pFileStream->ReadBytes(m_pBuffer.get(), nEntryLen); if (nRead != nEntryLen) { SAL_WARN("connectivity.drivers", "ODbaseTable::seekRow: short read!"); @@ -2710,15 +2710,14 @@ bool ODbaseTable::AllocBuffer() if (m_nBufferSize != nSize) { - delete m_pBuffer; - m_pBuffer = nullptr; + m_pBuffer.reset(); } // if there is no buffer available: allocate: - if (m_pBuffer == nullptr && nSize > 0) + if (!m_pBuffer && nSize > 0) { m_nBufferSize = nSize; - m_pBuffer = new sal_uInt8[m_nBufferSize+1]; + m_pBuffer.reset(new sal_uInt8[m_nBufferSize+1]); } return m_pBuffer != nullptr; @@ -2731,7 +2730,7 @@ bool ODbaseTable::WriteBuffer() // position on desired record: std::size_t nPos = m_aHeader.headerLength + static_cast<long>(m_nFilePos-1) * m_aHeader.recordLength; m_pFileStream->Seek(nPos); - return m_pFileStream->WriteBytes(m_pBuffer, m_aHeader.recordLength) > 0; + return m_pFileStream->WriteBytes(m_pBuffer.get(), m_aHeader.recordLength) > 0; } sal_Int32 ODbaseTable::getCurrentLastPos() const diff --git a/connectivity/source/drivers/file/FTable.cxx b/connectivity/source/drivers/file/FTable.cxx index 6358874f93f7..e583e20db9af 100644 --- a/connectivity/source/drivers/file/FTable.cxx +++ b/connectivity/source/drivers/file/FTable.cxx @@ -40,7 +40,6 @@ OFileTable::OFileTable(sdbcx::OCollection* _pTables,OConnection* _pConnection) ,m_pConnection(_pConnection) ,m_pFileStream(nullptr) ,m_nFilePos(0) - ,m_pBuffer(nullptr) ,m_nBufferSize(0) ,m_bWriteable(false) { @@ -63,7 +62,6 @@ OFileTable::OFileTable( sdbcx::OCollection* _pTables,OConnection* _pConnection, , m_pConnection(_pConnection) , m_pFileStream(nullptr) , m_nFilePos(0) - , m_pBuffer(nullptr) , m_nBufferSize(0) , m_bWriteable(false) { @@ -156,12 +154,7 @@ void OFileTable::FileClose() m_pFileStream->Flush(); m_pFileStream.reset(); - - if (m_pBuffer) - { - delete[] m_pBuffer; - m_pBuffer = nullptr; - } + m_pBuffer.reset(); } bool OFileTable::InsertRow(OValueRefVector& /*rRow*/, const css::uno::Reference< css::container::XIndexAccess>& /*_xCols*/) diff --git a/connectivity/source/inc/file/FTable.hxx b/connectivity/source/inc/file/FTable.hxx index 3495c79c24c9..bd12eca69eee 100644 --- a/connectivity/source/inc/file/FTable.hxx +++ b/connectivity/source/inc/file/FTable.hxx @@ -42,7 +42,7 @@ namespace connectivity std::unique_ptr<SvStream> m_pFileStream; ::rtl::Reference<OSQLColumns> m_aColumns; sal_Int32 m_nFilePos; // current IResultSetHelper::Movement - sal_uInt8* m_pBuffer; + std::unique_ptr<sal_uInt8[]> m_pBuffer; sal_uInt16 m_nBufferSize; // size of the ReadBuffer, if pBuffer != NULL bool m_bWriteable; // svstream can't say if we are writeable // so we have to _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits