[Libreoffice-commits] core.git: sfx2/source

Takeshi Abe tabe at fixedpoint.jp
Tue Nov 7 01:02:47 UTC 2017


 sfx2/source/dialog/versdlg.cxx |   26 +++++++-------------------
 1 file changed, 7 insertions(+), 19 deletions(-)

New commits:
commit fe7384f7d6539210d46b31f9bde64129088be32b
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date:   Mon Nov 6 18:22:36 2017 +0900

    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 at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Takeshi Abe <tabe at fixedpoint.jp>

diff --git a/sfx2/source/dialog/versdlg.cxx b/sfx2/source/dialog/versdlg.cxx
index 5f32f12cc6a3..a5864f2cc84c 100644
--- a/sfx2/source/dialog/versdlg.cxx
+++ b/sfx2/source/dialog/versdlg.cxx
@@ -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 )
 {


More information about the Libreoffice-commits mailing list