double delete of Library fixed 06/17406/1
Cedric Delamarre [Wed, 28 Oct 2015 11:15:40 +0000 (12:15 +0100)]
./bin/scilab-cli -profiling -e "loadXcosLibs" -quit &> log

test_run ast library
test_run ast library mode_nwni_profiling

Change-Id: I8e2bdafb275c65209588b515c2cc3b65b5aa703f

scilab/modules/ast/src/cpp/symbol/libraries.cpp
scilab/modules/ast/tests/unit_tests/library.dia.ref
scilab/modules/ast/tests/unit_tests/library.tst

index 4347780..2f1a0cd 100644 (file)
@@ -29,7 +29,10 @@ void Library::put(types::Library* _pLib, int _iLevel)
         types::Library* pLib = top()->m_pLib;
         if (pLib != _pLib)
         {
-            pLib->killMe();
+            // data is manage by variables.
+            // So if this library have to be killed
+            // this is alredy done by variables.
+            //pLib->killMe();
             top()->m_pLib = _pLib;
         }
     }
index 6a51e2a..9e21014 100644 (file)
@@ -61,3 +61,15 @@ internal_macro = 1;x = 18;
 assert_checkequal(test_macro(5), 20);
 assert_checkequal(internal_macro, 1);
 assert_checkequal(x, 18);
+// resume library
+mkdir("mylib");
+mputl("function mylib(), endfunction", "mylib/mylib.sci");
+genlib("myliblib", "mylib",%f,%t);
+-- Creation of [myliblib] (Macros) --
+genlib: Processing file: mylib.sci
+function resumeLib()
+    l=lib("mylib");
+    l=resume(l);
+endfunction
+resumeLib();
+resumeLib();
index 33c98be..ae93d40 100644 (file)
@@ -65,3 +65,15 @@ internal_macro = 1;x = 18;
 assert_checkequal(test_macro(5), 20);
 assert_checkequal(internal_macro, 1);
 assert_checkequal(x, 18);
+
+// resume library
+mkdir("mylib");
+mputl("function mylib(), endfunction", "mylib/mylib.sci");
+genlib("myliblib", "mylib",%f,%t);
+function resumeLib()
+    l=lib("mylib");
+    l=resume(l);
+endfunction
+
+resumeLib();
+resumeLib();