[Libreoffice-commits] core.git: idlc/inc idlc/source

Noel Grandin noel.grandin at collabora.co.uk
Wed Jan 17 13:21:17 UTC 2018


 idlc/inc/idlc.hxx    |    9 +++++----
 idlc/source/idlc.cxx |   19 ++++++++-----------
 2 files changed, 13 insertions(+), 15 deletions(-)

New commits:
commit 6ae487db5a1045d000c14604503e9c8f3bf24e30
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Wed Jan 17 15:12:55 2018 +0200

    fix use of std::unique_ptr in Idlc
    
    I removed the deletes in the destructor in
    
        commit b27fee9e0ebb445ce82baeade3b249807dca392b
        Date:   Wed Jan 10 11:44:28 2018 +0200
        loplugin:useuniqueptr cppu,idlc,io,ucbhelper
    
    but forgot to do the actual conversion
    
    Change-Id: Icb03070e1d8a2b10ccf892f01e9b44cc6bf0156f

diff --git a/idlc/inc/idlc.hxx b/idlc/inc/idlc.hxx
index 881078303e4a..42f16836adbb 100644
--- a/idlc/inc/idlc.hxx
+++ b/idlc/inc/idlc.hxx
@@ -22,6 +22,7 @@
 #include "idlctypes.hxx"
 #include "aststack.hxx"
 #include "options.hxx"
+#include <memory>
 
 #ifdef SAL_UNX
 #define SEPARATOR '/'
@@ -51,9 +52,9 @@ public:
     Options* getOptions()
         { return m_pOptions; }
     AstStack* scopes()
-        { return m_pScopes; }
+        { return m_pScopes.get(); }
     AstModule* getRoot()
-        { return m_pRoot; }
+        { return m_pRoot.get(); }
     const OString& getFileName() const
         { return m_fileName; }
     void setFileName(const OString& fileName)
@@ -115,8 +116,8 @@ public:
     void reset();
 private:
     Options*            m_pOptions;
-    AstStack*           m_pScopes;
-    AstModule*          m_pRoot;
+    std::unique_ptr<AstStack>  m_pScopes;
+    std::unique_ptr<AstModule> m_pRoot;
     OString      m_fileName;
     OString      m_mainFileName;
     OString      m_realFileName;
diff --git a/idlc/source/idlc.cxx b/idlc/source/idlc.cxx
index 2e7467b8ac59..5e530968cb9b 100644
--- a/idlc/source/idlc.cxx
+++ b/idlc/source/idlc.cxx
@@ -209,7 +209,7 @@ Idlc::Idlc(Options* pOptions)
     , m_offsetEnd(0)
     , m_parseState(PS_NoState)
 {
-    m_pScopes = new AstStack();
+    m_pScopes.reset( new AstStack() );
     // init root object after construction
     m_pRoot = nullptr;
     m_bGenerateDoc = m_pOptions->isValid("-C");
@@ -221,13 +221,12 @@ Idlc::~Idlc()
 
 void Idlc::init()
 {
-    delete m_pRoot;
-    m_pRoot = new AstModule(NT_root, OString(), nullptr);
+    m_pRoot.reset(new AstModule(NT_root, OString(), nullptr));
 
     // push the root node on the stack
-    m_pScopes->push(m_pRoot);
-    initializePredefinedTypes(m_pRoot);
-    predefineXInterface(m_pRoot);
+    m_pScopes->push(m_pRoot.get());
+    initializePredefinedTypes(m_pRoot.get());
+    predefineXInterface(m_pRoot.get());
 }
 
 void Idlc::reset()
@@ -247,13 +246,11 @@ void Idlc::reset()
     m_documentation.clear();
 
     m_pScopes->clear();
-    delete m_pRoot;
-
-    m_pRoot = new AstModule(NT_root, OString(), nullptr);
+    m_pRoot.reset( new AstModule(NT_root, OString(), nullptr) );
 
     // push the root node on the stack
-    m_pScopes->push(m_pRoot);
-    initializePredefinedTypes(m_pRoot);
+    m_pScopes->push(m_pRoot.get());
+    initializePredefinedTypes(m_pRoot.get());
 
     m_includes.clear();
 }


More information about the Libreoffice-commits mailing list