[ast] bug 8995 fixed 34/19934/2
Cedric Delamarre [Thu, 5 Apr 2018 14:52:20 +0000 (16:52 +0200)]
Change-Id: Ib6bf6b4c3004041091283d686ff73a9bb273cd9e

scilab/CHANGES.md
scilab/modules/ast/src/cpp/ast/visitor_common.cpp
scilab/modules/ast/tests/nonreg_tests/bug_8995.tst [new file with mode: 0644]

index 485c42b..983af1c 100644 (file)
@@ -378,6 +378,7 @@ Known issues
 * [#7675](http://bugzilla.scilab.org/show_bug.cgi?id=7675): sparse() got a wrong result, when creation with many values in same position.
 * [#8000](http://bugzilla.scilab.org/show_bug.cgi?id=8000): fixed   - `get(gcf(), "%s %s %s..")` crashed Scilab.
 * [#8127](http://bugzilla.scilab.org/show_bug.cgi?id=8127): When using `ode()`, some internal errors messages were in french.
+* [#8995](http://bugzilla.scilab.org/show_bug.cgi?id=8995): Problem with row insertion in empty matrix.
 * [#9958](http://bugzilla.scilab.org/show_bug.cgi?id=9958): `mprintf("%d\r", 12345)` printed `" 345"`
 * [#10190](http://bugzilla.scilab.org/show_bug.cgi?id=10190): Xcos blocks and labels positioning were not aligned to the grid on creation.
 * [#11240](http://bugzilla.scilab.org/show_bug.cgi?id=11240): `A=[]; clear B; [A($+1),B]=1;` crashed Scilab.
index e186c92..fa8a50c 100644 (file)
@@ -2317,7 +2317,7 @@ types::InternalType* insertionCall(const ast::Exp& e, types::typed_list* _pArgs,
         pOut = pRet;
     }
 
-    if (pIL)
+    if (pIL && pIL != pOut)
     {
         pIL->killMe();
     }
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_8995.tst b/scilab/modules/ast/tests/nonreg_tests/bug_8995.tst
new file mode 100644 (file)
index 0000000..a525f44
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2018 - ESI Group - Cedric Delamarre
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 8995 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8995
+//
+// <-- Short Description -->
+// Problem with row insertion in empty matrix
+
+foo = [];
+foo($+1:$+4) = 1:4;
+foo($+1:$+4) = 1:4;
+
+assert_checkequal(foo, [1:4 1:4]);