Kaydet (Commit) 6dd8b701 authored tarafından Takeshi Abe's avatar Takeshi Abe Kaydeden (comit) Noel Grandin

sot: Simplify SotData_Impl with std::unique_ptr

Change-Id: I08752c66fd2680aa5f2eb2968d7e23cf797090f9
Reviewed-on: https://gerrit.libreoffice.org/44667Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 135ad9ab
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/uno/Sequence.hxx>
#include <comphelper/documentconstants.hxx> #include <comphelper/documentconstants.hxx>
#include <memory>
#include <vector> #include <vector>
using namespace::com::sun::star::uno; using namespace::com::sun::star::uno;
...@@ -213,25 +214,11 @@ namespace ...@@ -213,25 +214,11 @@ namespace
const DataFlavorRepresentation, ImplFormatArray_Impl > {}; const DataFlavorRepresentation, ImplFormatArray_Impl > {};
typedef std::vector<css::datatransfer::DataFlavor*> tDataFlavorList; typedef std::vector<std::unique_ptr<css::datatransfer::DataFlavor>> tDataFlavorList;
struct SotData_Impl struct SotData_Impl
{ {
tDataFlavorList* pDataFlavorList; std::unique_ptr<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<SotData_Impl, ImplData> {}; struct ImplData : public rtl::Static<SotData_Impl, ImplData> {};
...@@ -241,7 +228,7 @@ static tDataFlavorList& InitFormats_Impl() ...@@ -241,7 +228,7 @@ static tDataFlavorList& InitFormats_Impl()
{ {
SotData_Impl *pSotData = &ImplData::get(); SotData_Impl *pSotData = &ImplData::get();
if( !pSotData->pDataFlavorList ) if( !pSotData->pDataFlavorList )
pSotData->pDataFlavorList = new tDataFlavorList; pSotData->pDataFlavorList.reset(new tDataFlavorList);
return *pSotData->pDataFlavorList; return *pSotData->pDataFlavorList;
} }
...@@ -272,17 +259,17 @@ SotClipboardFormatId SotExchange::RegisterFormatName( const OUString& rName ) ...@@ -272,17 +259,17 @@ SotClipboardFormatId SotExchange::RegisterFormatName( const OUString& rName )
tDataFlavorList& rL = InitFormats_Impl(); tDataFlavorList& rL = InitFormats_Impl();
for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ ) for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ )
{ {
DataFlavor* pFlavor = rL[ i ]; auto const& pFlavor = rL[ i ];
if( pFlavor && rName == pFlavor->HumanPresentableName ) if( pFlavor && rName == pFlavor->HumanPresentableName )
return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1); return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1);
} }
DataFlavor* pNewFlavor = new DataFlavor; std::unique_ptr<DataFlavor> pNewFlavor(new DataFlavor);
pNewFlavor->MimeType = rName; pNewFlavor->MimeType = rName;
pNewFlavor->HumanPresentableName = rName; pNewFlavor->HumanPresentableName = rName;
pNewFlavor->DataType = cppu::UnoType<OUString>::get(); pNewFlavor->DataType = cppu::UnoType<OUString>::get();
rL.push_back( pNewFlavor ); rL.push_back( std::move(pNewFlavor) );
return static_cast<SotClipboardFormatId>(static_cast<int>(rL.size()-1) + static_cast<int>(SotClipboardFormatId::USER_END) + 1); return static_cast<SotClipboardFormatId>(static_cast<int>(rL.size()-1) + static_cast<int>(SotClipboardFormatId::USER_END) + 1);
} }
...@@ -303,17 +290,17 @@ SotClipboardFormatId SotExchange::RegisterFormatMimeType( const OUString& rMimeT ...@@ -303,17 +290,17 @@ SotClipboardFormatId SotExchange::RegisterFormatMimeType( const OUString& rMimeT
tDataFlavorList& rL = InitFormats_Impl(); tDataFlavorList& rL = InitFormats_Impl();
for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ ) for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ )
{ {
DataFlavor* pFlavor = rL[ i ]; auto const& pFlavor = rL[ i ];
if( pFlavor && rMimeType == pFlavor->MimeType ) if( pFlavor && rMimeType == pFlavor->MimeType )
return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1); return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1);
} }
DataFlavor* pNewFlavor = new DataFlavor; std::unique_ptr<DataFlavor> pNewFlavor(new DataFlavor);
pNewFlavor->MimeType = rMimeType; pNewFlavor->MimeType = rMimeType;
pNewFlavor->HumanPresentableName = rMimeType; pNewFlavor->HumanPresentableName = rMimeType;
pNewFlavor->DataType = cppu::UnoType<OUString>::get(); pNewFlavor->DataType = cppu::UnoType<OUString>::get();
rL.push_back( pNewFlavor ); rL.push_back( std::move(pNewFlavor) );
return static_cast<SotClipboardFormatId>(static_cast<int>(rL.size()-1) + static_cast<int>(SotClipboardFormatId::USER_END) + 1); return static_cast<SotClipboardFormatId>(static_cast<int>(rL.size()-1) + static_cast<int>(SotClipboardFormatId::USER_END) + 1);
} }
...@@ -332,7 +319,7 @@ SotClipboardFormatId SotExchange::RegisterFormat( const DataFlavor& rFlavor ) ...@@ -332,7 +319,7 @@ SotClipboardFormatId SotExchange::RegisterFormat( const DataFlavor& rFlavor )
{ {
tDataFlavorList& rL = InitFormats_Impl(); tDataFlavorList& rL = InitFormats_Impl();
nRet = static_cast<SotClipboardFormatId>(rL.size() + static_cast<int>(SotClipboardFormatId::USER_END) + 1); nRet = static_cast<SotClipboardFormatId>(rL.size() + static_cast<int>(SotClipboardFormatId::USER_END) + 1);
rL.push_back( new DataFlavor( rFlavor ) ); rL.emplace_back( new DataFlavor( rFlavor ) );
} }
return nRet; return nRet;
...@@ -433,7 +420,7 @@ SotClipboardFormatId SotExchange::GetFormatIdFromMimeType( const OUString& rMime ...@@ -433,7 +420,7 @@ SotClipboardFormatId SotExchange::GetFormatIdFromMimeType( const OUString& rMime
for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ ) for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ )
{ {
DataFlavor* pFlavor = rL[ i ]; auto const& pFlavor = rL[ i ];
if( pFlavor && rMimeType == pFlavor->MimeType ) if( pFlavor && rMimeType == pFlavor->MimeType )
return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1); return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1);
} }
...@@ -470,7 +457,7 @@ SotClipboardFormatId SotExchange::GetFormat( const DataFlavor& rFlavor ) ...@@ -470,7 +457,7 @@ SotClipboardFormatId SotExchange::GetFormat( const DataFlavor& rFlavor )
tDataFlavorList& rL = InitFormats_Impl(); tDataFlavorList& rL = InitFormats_Impl();
for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ ) for( tDataFlavorList::size_type i = 0; i < rL.size(); i++ )
{ {
DataFlavor* pFlavor = rL[ i ]; auto const& pFlavor = rL[ i ];
if( pFlavor && rMimeType == pFlavor->MimeType ) if( pFlavor && rMimeType == pFlavor->MimeType )
return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1); return static_cast<SotClipboardFormatId>(i + static_cast<int>(SotClipboardFormatId::USER_END) + 1);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment