sfx2: Simplify SfxVersionTableDtor's code with std::unique_ptr
Change-Id: I8279f7ae14301f485c2678271939fb6ad72d4721 Reviewed-on: https://gerrit.libreoffice.org/44350 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
This commit is contained in:
@@ -46,12 +46,11 @@
|
||||
#include <sfx2/request.hxx>
|
||||
|
||||
#include <sfx2/sfxuno.hxx>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
using namespace com::sun::star;
|
||||
using ::std::vector;
|
||||
|
||||
// **************************************************************************
|
||||
struct SfxVersionInfo
|
||||
{
|
||||
OUString aName;
|
||||
@@ -65,35 +64,31 @@ struct SfxVersionInfo
|
||||
class SfxVersionTableDtor
|
||||
{
|
||||
private:
|
||||
std::vector< SfxVersionInfo* > aTableList;
|
||||
std::vector<std::unique_ptr<SfxVersionInfo>> aTableList;
|
||||
public:
|
||||
explicit SfxVersionTableDtor( const uno::Sequence < util::RevisionTag >& rInfo );
|
||||
explicit SfxVersionTableDtor( const uno::Sequence < document::CmisVersion > & rInfo );
|
||||
~SfxVersionTableDtor()
|
||||
{ DelDtor(); }
|
||||
SfxVersionTableDtor(const SfxVersionTableDtor&) = delete;
|
||||
SfxVersionTableDtor& operator=(const SfxVersionTableDtor&) = delete;
|
||||
|
||||
void DelDtor();
|
||||
|
||||
size_t size() const
|
||||
{ return aTableList.size(); }
|
||||
|
||||
SfxVersionInfo* at( size_t i ) const
|
||||
{ return aTableList[ i ]; }
|
||||
{ return aTableList[ i ].get(); }
|
||||
};
|
||||
|
||||
SfxVersionTableDtor::SfxVersionTableDtor( const uno::Sequence < util::RevisionTag >& rInfo )
|
||||
{
|
||||
for ( sal_Int32 n=0; n<rInfo.getLength(); n++ )
|
||||
{
|
||||
SfxVersionInfo* pInfo = new SfxVersionInfo;
|
||||
std::unique_ptr<SfxVersionInfo> pInfo(new SfxVersionInfo);
|
||||
pInfo->aName = rInfo[n].Identifier;
|
||||
pInfo->aComment = rInfo[n].Comment;
|
||||
pInfo->aAuthor = rInfo[n].Author;
|
||||
|
||||
pInfo->aCreationDate = DateTime( rInfo[n].TimeStamp );
|
||||
aTableList.push_back( pInfo );
|
||||
aTableList.push_back( std::move(pInfo) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,23 +96,16 @@ SfxVersionTableDtor::SfxVersionTableDtor( const uno::Sequence < document::CmisVe
|
||||
{
|
||||
for ( sal_Int32 n=0; n<rInfo.getLength(); n++ )
|
||||
{
|
||||
SfxVersionInfo* pInfo = new SfxVersionInfo;
|
||||
std::unique_ptr<SfxVersionInfo> pInfo(new SfxVersionInfo);
|
||||
pInfo->aName = rInfo[n].Id;
|
||||
pInfo->aComment = rInfo[n].Comment;
|
||||
pInfo->aAuthor = rInfo[n].Author;
|
||||
|
||||
pInfo->aCreationDate = DateTime( rInfo[n].TimeStamp );
|
||||
aTableList.push_back( pInfo );
|
||||
aTableList.push_back( std::move(pInfo) );
|
||||
}
|
||||
}
|
||||
|
||||
void SfxVersionTableDtor::DelDtor()
|
||||
{
|
||||
for (SfxVersionInfo* i : aTableList)
|
||||
delete i;
|
||||
aTableList.clear();
|
||||
}
|
||||
|
||||
SfxVersionInfo::SfxVersionInfo()
|
||||
: aCreationDate( DateTime::EMPTY )
|
||||
{
|
||||
|
Reference in New Issue
Block a user