* Bug #13000 fixed - Endless recursive call on []./int8(3) and on int8(3)./[]. 64/12964/3
Sylvestre Ledru [Sun, 20 Oct 2013 14:11:54 +0000 (16:11 +0200)]
Change-Id: Ic8736e623a92a79d5fc995f17dd35635870a92b0

scilab/CHANGES_5.5.X
scilab/modules/integer/macros/%i_d_s.sci
scilab/modules/integer/macros/%s_d_i.sci
scilab/modules/integer/tests/nonreg_tests/bug_13000.dia.ref [new file with mode: 0644]
scilab/modules/integer/tests/nonreg_tests/bug_13000.tst [new file with mode: 0644]

index c1a96ac..a99035d 100644 (file)
@@ -46,6 +46,8 @@ Scilab Bug Fixes
 
 * Bug #12979 fixed - exportUI did not work with vectorial export.
 
+* Bug #13000 fixed - []./int8(3) and on int8(3)./[] led to an endless recursive.
+
 * Bug #13003 fixed - EOJ: add a converter to handle string to enum.
 
 * Bug #13004 fixed - Debug infos were printed on an error with eoj.
index 3332ca7..8c47a7f 100644 (file)
@@ -1,15 +1,17 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA -
-//
+// Copyright (C) 2013 - Samuel GOUGEON : http://bugzilla.scilab.org/13000
+
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 // you should have received as part of this distribution.  The terms
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
 
-
-function r=%i_d_s(a,b)
-
-    if b==[] then r=[],end
-    r=a./iconvert(b,inttype(a))
+function r = %i_d_s(a,b)
+    if b==[] then
+        r = []
+    else
+        r = a./iconvert(b,inttype(a))
+    end
 endfunction
index f6e0daf..f7451c3 100644 (file)
@@ -1,15 +1,18 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA -
+// Copyright (C) 2013 - Samuel GOUGEON : http://bugzilla.scilab.org/13000
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 // you should have received as part of this distribution.  The terms
 // are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 
-function r=%s_d_i(a,b)
-
-    if a==[] then r=[],end
-    r=iconvert(a,inttype(b))./b
+function r = %s_d_i(a,b)
+    if a==[] then
+        r = []
+    else
+        r = iconvert(a,inttype(b))./b
+    end
 endfunction
diff --git a/scilab/modules/integer/tests/nonreg_tests/bug_13000.dia.ref b/scilab/modules/integer/tests/nonreg_tests/bug_13000.dia.ref
new file mode 100644 (file)
index 0000000..b05a7d0
--- /dev/null
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - S/E - Sylvestre Ledru
+//
+//  This file is distributed under the same license as the Scilab package.
+// ===========================================================================
+//
+// <-- Non-regression test for bug 13000 -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13000
+//
+// <-- Short Description -->
+// Endless recursive call on []./int8(3) and on int8(3)./[]
+//
+a = []./int8(3);
+assert_checkequal(a, []);
+a = int8(3)./[];
+assert_checkequal(a, []);
diff --git a/scilab/modules/integer/tests/nonreg_tests/bug_13000.tst b/scilab/modules/integer/tests/nonreg_tests/bug_13000.tst
new file mode 100644 (file)
index 0000000..31c7567
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - S/E - Sylvestre Ledru
+//
+//  This file is distributed under the same license as the Scilab package.
+// ===========================================================================
+//
+// <-- Non-regression test for bug 13000 -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13000
+//
+// <-- Short Description -->
+// Endless recursive call on []./int8(3) and on int8(3)./[]
+//
+
+a = []./int8(3);
+assert_checkequal(a, []);
+a = int8(3)./[];
+assert_checkequal(a, []);
+