Fix some easy to fix warnings
[scilab.git] / scilab / modules / ast / includes / ast / debugmanager.hxx
index bcbadae..820b8e0 100644 (file)
@@ -2,17 +2,22 @@
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  *  Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
  *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
  *
  */
 
 #ifndef __DEBUGGER_MANAGER_HXX__
 #define __DEBUGGER_MANAGER_HXX__
 
+#include <memory>
+
 #include "abstractdebugger.hxx"
 #include "breakpoint.hxx"
 #include "dynlib_ast.h"
@@ -31,13 +36,13 @@ public :
     };
 
 private:
-    static DebuggerMagager* me;
+    static std::unique_ptr<DebuggerMagager> me;
     DebuggerMagager() :
         breakpoints(),
         debuggers(), pExp(nullptr), interrupted(false), currentBreakPoint(-1), action(Continue), level(0) {}
 
-    Debuggers debuggers;
     Breakpoints breakpoints;
+    Debuggers debuggers;
 
     ast::Exp* pExp;
     bool interrupted;
@@ -47,6 +52,17 @@ private:
 
     void internal_stop();
 public:
+    ~DebuggerMagager()
+    {
+        for (auto d : debuggers)
+        {
+            delete d;
+        }
+        for (auto b : breakpoints)
+        {
+            delete b;
+        }
+    }
 
     static DebuggerMagager* getInstance();