expHistory corrected 78/14978/2
Cedric Delamarre [Tue, 5 Aug 2014 11:29:33 +0000 (13:29 +0200)]
a(1,3).b = 12

Change-Id: Ie829c2fa81a59f28cde83c1c7027544c33411585

scilab/modules/ast/src/cpp/ast/expHistory.cpp

index a41703d..c8fd68c 100644 (file)
@@ -122,7 +122,14 @@ void ExpHistory::computeArgs()
         types::typed_list* pNewArgs = new types::typed_list();
         int iCount = types::checkIndexesArguments(m_pITCurrent, m_pArgs, pNewArgs, m_piArgsDimsArray, NULL);
 
-        delete m_pArgs;
+        // Delete pArgs only if i'm the owner
+        // else it will be deleted by the expHistory
+        // which are the flag m_pArgsOwner = true
+        if (m_pArgsOwner)
+        {
+            delete m_pArgs;
+        }
+
         m_pArgs = pNewArgs;
         m_pArgsOwner = true;
 
@@ -184,7 +191,7 @@ int ExpHistory::getSizeFromArgs()
             computeArgs();
         }
 
-        size = m_pArgs->size();
+        size = (int)m_pArgs->size();
         for (int i = 0; i < size; i++)
         {
             iSizeFromArgs *= m_piArgsDimsArray[i];