convert AnalysisVisitor into a Singleton
[scilab.git] / scilab / modules / ast / src / cpp / analysis / AnalysisVisitor.cpp
index 2446375..dfd048e 100644 (file)
 
 namespace analysis
 {
+AnalysisVisitor* AnalysisVisitor::m_instance = nullptr;
 AnalysisVisitor::MapSymCall AnalysisVisitor::symscall = AnalysisVisitor::initCalls();//a=1:3;b=2;c=3;testAnalysis("repmat","a","b","c")
 
+AnalysisVisitor& AnalysisVisitor::getInstance()
+{
+    if (m_instance == nullptr)
+    {
+        m_instance = new AnalysisVisitor();
+    }
+
+    return *m_instance;
+}
+
+void AnalysisVisitor::deleteInstance()
+{
+    if (m_instance) 
+    {
+        delete m_instance;
+        m_instance = nullptr;
+    }
+}
+
 AnalysisVisitor::MapSymCall AnalysisVisitor::initCalls()
 {
     MapSymCall msc;
@@ -87,6 +107,8 @@ void AnalysisVisitor::reset()
     {
         loops.pop();
     }
+
+    fblockListeners.clear();
     start_chrono();
 }