include/toolkit/controls/stdtabcontrollermodel.hxx | 8 --- toolkit/source/controls/stdtabcontroller.cxx | 42 ++++++++++---------- tools/source/inet/inetmime.cxx | 44 +++++++++------------ 3 files changed, 42 insertions(+), 52 deletions(-)
New commits: commit 1d6366fc9aac6f9645f35bcdc784aeb46e20ba47 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Sep 17 14:32:29 2018 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Tue Sep 18 09:08:35 2018 +0200 loplugin:useuniqueptr in StdTabController::autoTabOrder Change-Id: I67c2283974eb71978beaf265f821fd2c5c5ae55c Reviewed-on: https://gerrit.libreoffice.org/60626 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/toolkit/controls/stdtabcontrollermodel.hxx b/include/toolkit/controls/stdtabcontrollermodel.hxx index 19884f505229..2f73c1c8af56 100644 --- a/include/toolkit/controls/stdtabcontrollermodel.hxx +++ b/include/toolkit/controls/stdtabcontrollermodel.hxx @@ -69,14 +69,6 @@ struct UnoControlModelEntry }; }; -struct ComponentEntry -{ - css::awt::XWindow* pComponent; - Point aPos; -}; - -typedef ::std::vector< ComponentEntry* > ComponentEntryList; - #define CONTROLPOS_NOTFOUND 0xFFFFFFFF class StdTabControllerModel final : public css::awt::XTabControllerModel, diff --git a/toolkit/source/controls/stdtabcontroller.cxx b/toolkit/source/controls/stdtabcontroller.cxx index d337b972ad53..d9bcc5928ecb 100644 --- a/toolkit/source/controls/stdtabcontroller.cxx +++ b/toolkit/source/controls/stdtabcontroller.cxx @@ -231,6 +231,12 @@ Sequence< Reference< XControl > > StdTabController::getControls( ) return aSeq; } +struct ComponentEntry +{ + css::awt::XWindow* pComponent; + ::Point aPos; +}; + void StdTabController::autoTabOrder( ) { ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() ); @@ -255,43 +261,39 @@ void StdTabController::autoTabOrder( ) Reference< XWindow > * pComponents = aCompSeq.getArray(); // insert sort algorithm - ComponentEntryList aCtrls; - size_t n; - for ( n = 0; n < nCtrls; n++ ) + std::vector< ComponentEntry > aCtrls; + aCtrls.reserve(nCtrls); + for ( size_t n = 0; n < nCtrls; n++ ) { XWindow* pC = pComponents[n].get(); - ComponentEntry* pE = new ComponentEntry; - pE->pComponent = pC; + ComponentEntry newEntry; + newEntry.pComponent = pC; awt::Rectangle aPosSize = pC->getPosSize(); - pE->aPos.setX( aPosSize.X ); - pE->aPos.setY( aPosSize.Y ); + newEntry.aPos.setX( aPosSize.X ); + newEntry.aPos.setY( aPosSize.Y ); - ComponentEntryList::size_type nPos; + decltype(aCtrls)::size_type nPos; for ( nPos = 0; nPos < aCtrls.size(); nPos++ ) { - ComponentEntry* pEntry = aCtrls[ nPos ]; - if ( ( pEntry->aPos.Y() > pE->aPos.Y() ) || - ( ( pEntry->aPos.Y() == pE->aPos.Y() ) && ( pEntry->aPos.X() > pE->aPos.X() ) ) ) + ComponentEntry& rEntry = aCtrls[ nPos ]; + if ( ( rEntry.aPos.Y() > newEntry.aPos.Y() ) || + ( ( rEntry.aPos.Y() == newEntry.aPos.Y() ) && ( rEntry.aPos.X() > newEntry.aPos.X() ) ) ) break; } if ( nPos < aCtrls.size() ) { - ComponentEntryList::iterator it = aCtrls.begin(); - ::std::advance( it, nPos ); - aCtrls.insert( it, pE ); + aCtrls.insert( aCtrls.begin() + nPos, newEntry ); } else { - aCtrls.push_back( pE ); + aCtrls.push_back( newEntry ); } } Sequence< Reference< XControlModel > > aNewSeq( nCtrls ); - for ( n = 0; n < nCtrls; n++ ) + for ( size_t n = 0; n < nCtrls; n++ ) { - ComponentEntry* pE = aCtrls[ n ]; - Reference< XControl > xUC( pE->pComponent, UNO_QUERY ); + ComponentEntry& rEntry = aCtrls[ n ]; + Reference< XControl > xUC( rEntry.pComponent, UNO_QUERY ); aNewSeq.getArray()[n] = xUC->getModel(); - delete pE; } - aCtrls.clear(); mxModel->setControlModels( aNewSeq ); } commit b225295d68f5e868595b74342d41338c49d33589 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Sep 17 13:56:14 2018 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Tue Sep 18 09:08:23 2018 +0200 loplugin:useuniqueptr in convertToUnicode Change-Id: I1d4379350793c3c245952793af5defeea84075b3 Reviewed-on: https://gerrit.libreoffice.org/60624 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/tools/source/inet/inetmime.cxx b/tools/source/inet/inetmime.cxx index aee940a8bc7a..1f8cb5196d3e 100644 --- a/tools/source/inet/inetmime.cxx +++ b/tools/source/inet/inetmime.cxx @@ -94,7 +94,7 @@ inline bool isMIMECharsetEncoding(rtl_TextEncoding eEncoding) return rtl_isOctetTextEncoding(eEncoding); } -sal_Unicode * convertToUnicode(const sal_Char * pBegin, +std::unique_ptr<sal_Unicode[]> convertToUnicode(const sal_Char * pBegin, const sal_Char * pEnd, rtl_TextEncoding eEncoding, sal_Size & rSize) @@ -105,15 +105,15 @@ sal_Unicode * convertToUnicode(const sal_Char * pBegin, = rtl_createTextToUnicodeConverter(eEncoding); rtl_TextToUnicodeContext hContext = rtl_createTextToUnicodeContext(hConverter); - sal_Unicode * pBuffer; + std::unique_ptr<sal_Unicode[]> pBuffer; sal_uInt32 nInfo; for (sal_Size nBufferSize = pEnd - pBegin;; nBufferSize += nBufferSize / 3 + 1) { - pBuffer = new sal_Unicode[nBufferSize]; + pBuffer.reset(new sal_Unicode[nBufferSize]); sal_Size nSrcCvtBytes; rSize = rtl_convertTextToUnicode( - hConverter, hContext, pBegin, pEnd - pBegin, pBuffer, + hConverter, hContext, pBegin, pEnd - pBegin, pBuffer.get(), nBufferSize, RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR @@ -121,20 +121,19 @@ sal_Unicode * convertToUnicode(const sal_Char * pBegin, &nInfo, &nSrcCvtBytes); if (nInfo != RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOOSMALL) break; - delete[] pBuffer; + pBuffer.reset(); rtl_resetTextToUnicodeContext(hConverter, hContext); } rtl_destroyTextToUnicodeContext(hConverter, hContext); rtl_destroyTextToUnicodeConverter(hConverter); if (nInfo != 0) { - delete[] pBuffer; - pBuffer = nullptr; + pBuffer.reset(); } return pBuffer; } -sal_Char * convertFromUnicode(const sal_Unicode * pBegin, +std::unique_ptr<sal_Char[]> convertFromUnicode(const sal_Unicode * pBegin, const sal_Unicode * pEnd, rtl_TextEncoding eEncoding, sal_Size & rSize) @@ -145,15 +144,15 @@ sal_Char * convertFromUnicode(const sal_Unicode * pBegin, = rtl_createUnicodeToTextConverter(eEncoding); rtl_UnicodeToTextContext hContext = rtl_createUnicodeToTextContext(hConverter); - sal_Char * pBuffer; + std::unique_ptr<sal_Char[]> pBuffer; sal_uInt32 nInfo; for (sal_Size nBufferSize = pEnd - pBegin;; nBufferSize += nBufferSize / 3 + 1) { - pBuffer = new sal_Char[nBufferSize]; + pBuffer.reset(new sal_Char[nBufferSize]); sal_Size nSrcCvtBytes; rSize = rtl_convertUnicodeToText( - hConverter, hContext, pBegin, pEnd - pBegin, pBuffer, + hConverter, hContext, pBegin, pEnd - pBegin, pBuffer.get(), nBufferSize, RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR @@ -162,15 +161,14 @@ sal_Char * convertFromUnicode(const sal_Unicode * pBegin, &nInfo, &nSrcCvtBytes); if (nInfo != RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL) break; - delete[] pBuffer; + pBuffer.reset(); rtl_resetUnicodeToTextContext(hConverter, hContext); } rtl_destroyUnicodeToTextContext(hConverter, hContext); rtl_destroyUnicodeToTextConverter(hConverter); if (nInfo != 0) { - delete[] pBuffer; - pBuffer = nullptr; + pBuffer.reset(); } return pBuffer; } @@ -294,14 +292,13 @@ bool translateUTF8Char(const sal_Char *& rBegin, sal_Unicode aUTF16[2]; const sal_Unicode * pUTF16End = putUTF32Character(aUTF16, nUCS4); sal_Size nSize; - sal_Char * pBuffer = convertFromUnicode(aUTF16, pUTF16End, eEncoding, + std::unique_ptr<sal_Char[]> pBuffer = convertFromUnicode(aUTF16, pUTF16End, eEncoding, nSize); if (!pBuffer) return false; DBG_ASSERT(nSize == 1, "translateUTF8Char(): Bad conversion"); - rCharacter = *pBuffer; - delete[] pBuffer; + rCharacter = *pBuffer.get(); } rBegin = p; return true; @@ -384,7 +381,7 @@ bool parseParameters(ParameterList const & rInput, do { sal_Size nSize; - sal_Unicode * pUnicode + std::unique_ptr<sal_Unicode[]> pUnicode = convertToUnicode(itNext->m_aValue.getStr(), itNext->m_aValue.getStr() + itNext->m_aValue.getLength(), @@ -403,8 +400,7 @@ bool parseParameters(ParameterList const & rInput, bBadEncoding = true; break; } - aValue.append(pUnicode, static_cast<sal_Int32>(nSize)); - delete[] pUnicode; + aValue.append(pUnicode.get(), static_cast<sal_Int32>(nSize)); ++itNext; } while (itNext != rInput.end() && itNext->m_nSection != 0); @@ -1395,7 +1391,7 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody) bEncodedWord = bEncodedWord && q != pEnd && *q++ == '='; - sal_Unicode * pUnicodeBuffer = nullptr; + std::unique_ptr<sal_Unicode[]> pUnicodeBuffer; sal_Size nUnicodeSize = 0; if (bEncodedWord) { @@ -1403,7 +1399,7 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody) = convertToUnicode(sText.getStr(), sText.getStr() + sText.getLength(), eCharsetEncoding, nUnicodeSize); - if (pUnicodeBuffer == nullptr) + if (!pUnicodeBuffer) bEncodedWord = false; } @@ -1411,9 +1407,9 @@ OUString INetMIME::decodeHeaderFieldBody(const OString& rBody) { appendISO88591(sDecoded, pCopyBegin, pWSPBegin); sDecoded.append( - pUnicodeBuffer, + pUnicodeBuffer.get(), static_cast< sal_Int32 >(nUnicodeSize)); - delete[] pUnicodeBuffer; + pUnicodeBuffer.reset(); p = q; pCopyBegin = p; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits