fix macro with varargin called without argument 41/19541/1
Antoine ELIAS [Thu, 23 Nov 2017 09:32:45 +0000 (10:32 +0100)]
regression after 582b293631764895f8546e3ea713f2e06ed50054

Change-Id: I04c8a5753291b723e5284ebff7f2454ce6466599

scilab/modules/ast/src/cpp/types/macro.cpp

index 5dcb8df..fdc0149 100644 (file)
@@ -190,12 +190,11 @@ Callable::ReturnValue Macro::call(typed_list &in, optional_list &opt, int _iRetC
     // varargin management
     if (m_inputArgs->size() > 0 && m_inputArgs->back()->getSymbol().getName() == L"varargin")
     {
-        List* pL = nullptr;;
+        List* pL = new List();;
         int iVarPos = rhs;
         if (iVarPos > static_cast<int>(m_inputArgs->size()) - 1)
         {
             iVarPos = static_cast<int>(m_inputArgs->size()) - 1;
-            pL = new List();
         }
 
         //add variables in context or varargin list
@@ -233,10 +232,8 @@ Callable::ReturnValue Macro::call(typed_list &in, optional_list &opt, int _iRetC
             }
         }
 
-        if (pL)
-        {
-            pContext->put(m_Varargin, pL);
-        }
+        //add varargin to macro scope 
+        pContext->put(m_Varargin, pL);
     }
     else if (rhs > m_inputArgs->size())
     {