bug 4156
Allan CORNET [Mon, 3 Aug 2009 14:29:35 +0000 (16:29 +0200)]
scilab/CHANGES_5.2.X
scilab/modules/scicos/etc/scicos.start
scilab/modules/scicos/macros/scicos_auto/lincos.sci
scilab/modules/scicos/macros/scicos_auto/scicos.sci
scilab/modules/scicos/macros/scicos_auto/scicos_simulate.sci
scilab/modules/scicos/macros/scicos_auto/steadycos.sci
scilab/modules/scicos/macros/scicos_utils/initial_scicos_tables.sci
scilab/modules/scicos/tests/nonreg_tests/bug_4156.dia.ref [new file with mode: 0644]
scilab/modules/scicos/tests/nonreg_tests/bug_4156.tst [new file with mode: 0644]

index 3dea2b0..6d21b4d 100644 (file)
@@ -1,3 +1,7 @@
+Scicos:
+=======
+* bug 4156 fixed - scicos defines some temp. variables on stack without remove.
+               
                Changes between version 5.1.X and 5.2.0 of Scilab
                =================================================
 
index 385b630..089da5b 100644 (file)
@@ -29,17 +29,4 @@ if WITH_DEMOS then
        clear pathdemos;
 end
 
-// Define Scicos data tables ===========================================
-  if ( ~isdef("scicos_pal") | ~isdef("%scicos_menu") | ..
-     ~isdef("%scicos_short") | ~isdef("%scicos_help") | ..
-     ~isdef("%scicos_display_mode") | ~isdef("modelica_libs") | ..
-     ~isdef("scicos_pal_libs") | ~isdef("%scicos_gif") | ..
-     ~isdef("%scicos_contrib") | ~isdef("%scicos_libs") ) then
-
-    [scicos_pal, %scicos_menu, %scicos_short, %scicos_help, ...
-     %scicos_display_mode, modelica_libs,scicos_pal_libs, ...
-     %scicos_lhb_list, %CmenuTypeOneVector, %scicos_gif, ...
-     %scicos_contrib,%scicos_libs] = initial_scicos_tables();
-     clear initial_scicos_tables
-   end
 // =============================================================================
index 029aeaf..34052ab 100644 (file)
@@ -74,6 +74,20 @@ if exists('scicos_utilslib')==0 then
     load("SCI/modules/scicos/macros/scicos_utils/lib") ;
 end
 
+  // Define Scicos data tables ===========================================
+  if ( ~isdef("scicos_pal") | ~isdef("%scicos_menu") | ..
+     ~isdef("%scicos_short") | ~isdef("%scicos_help") | ..
+     ~isdef("%scicos_display_mode") | ~isdef("modelica_libs") | ..
+     ~isdef("scicos_pal_libs") | ~isdef("%scicos_gif") | ..
+     ~isdef("%scicos_contrib") | ~isdef("%scicos_libs") ) then
+
+    [scicos_pal, %scicos_menu, %scicos_short, %scicos_help, ...
+     %scicos_display_mode, modelica_libs,scicos_pal_libs, ...
+     %scicos_lhb_list, %CmenuTypeOneVector, %scicos_gif, ...
+     %scicos_contrib,%scicos_libs] = initial_scicos_tables();
+     clear initial_scicos_tables
+   end
+  // =====================================================================
 
 [lhs,rhs] = argn(0)
 IN  = [];
index 4dcecf0..5aa8990 100644 (file)
@@ -62,6 +62,21 @@ function [scs_m, newparameters, needcompile, edited] = scicos(scs_m, menus)
   clear noguimode
   //**-----------------------------------------------------------------------------------------
 
+  // Define Scicos data tables ===========================================
+  if ( ~isdef("scicos_pal") | ~isdef("%scicos_menu") | ..
+     ~isdef("%scicos_short") | ~isdef("%scicos_help") | ..
+     ~isdef("%scicos_display_mode") | ~isdef("modelica_libs") | ..
+     ~isdef("scicos_pal_libs") | ~isdef("%scicos_gif") | ..
+     ~isdef("%scicos_contrib") | ~isdef("%scicos_libs") ) then
+
+    [scicos_pal, %scicos_menu, %scicos_short, %scicos_help, ...
+     %scicos_display_mode, modelica_libs,scicos_pal_libs, ...
+     %scicos_lhb_list, %CmenuTypeOneVector, %scicos_gif, ...
+     %scicos_contrib,%scicos_libs] = initial_scicos_tables();
+     clear initial_scicos_tables
+   end
+  // =====================================================================
+
 
   //** -------------------- Check the recurring calling level of scicos ----------------------
   [%ljunk, %mac] = where() ; //** where I am ?
index 03ffac0..193175e 100644 (file)
@@ -63,19 +63,20 @@ function Info = scicos_simulate(scs_m, Info, %scicos_context, flag, Ignb)
   end
   clear noguimode
 
-  //** define Scicos data tables
-  if (~isdef("scicos_pal") | ~isdef("%scicos_menu") | ..
-      ~isdef("%scicos_short") | ~isdef("%scicos_help") | ..
-      ~isdef("%scicos_display_mode") | ~isdef("modelica_libs") | ..
-      ~isdef("scicos_pal_libs") | ~isdef("%scicos_gif") | ..
-      ~isdef("%scicos_contrib") ) then
-         [scicos_pal, %scicos_menu,...
-          %scicos_short, %scicos_help,..
-          %scicos_display_mode, modelica_libs,..
-          scicos_pal_libs, %scicos_gif,..
-          %scicos_contrib] = initial_scicos_tables()
-         clear initial_scicos_tables
-  end
+  // Define Scicos data tables ===========================================
+  if ( ~isdef("scicos_pal") | ~isdef("%scicos_menu") | ..
+     ~isdef("%scicos_short") | ~isdef("%scicos_help") | ..
+     ~isdef("%scicos_display_mode") | ~isdef("modelica_libs") | ..
+     ~isdef("scicos_pal_libs") | ~isdef("%scicos_gif") | ..
+     ~isdef("%scicos_contrib") | ~isdef("%scicos_libs") ) then
+
+    [scicos_pal, %scicos_menu, %scicos_short, %scicos_help, ...
+     %scicos_display_mode, modelica_libs,scicos_pal_libs, ...
+     %scicos_lhb_list, %CmenuTypeOneVector, %scicos_gif, ...
+     %scicos_contrib,%scicos_libs] = initial_scicos_tables();
+     clear initial_scicos_tables
+   end
+  // =====================================================================
 
   //** initialize a "scicos_debug_gr" variable
   %scicos_debug_gr = %f;
index 1ba63f0..6b037a9 100644 (file)
@@ -60,6 +60,20 @@ if exists('scicos_utilslib')==0 then
     load("SCI/modules/scicos/macros/scicos_utils/lib") ;
 end
 
+  // Define Scicos data tables ===========================================
+  if ( ~isdef("scicos_pal") | ~isdef("%scicos_menu") | ..
+     ~isdef("%scicos_short") | ~isdef("%scicos_help") | ..
+     ~isdef("%scicos_display_mode") | ~isdef("modelica_libs") | ..
+     ~isdef("scicos_pal_libs") | ~isdef("%scicos_gif") | ..
+     ~isdef("%scicos_contrib") | ~isdef("%scicos_libs") ) then
+
+    [scicos_pal, %scicos_menu, %scicos_short, %scicos_help, ...
+     %scicos_display_mode, modelica_libs,scicos_pal_libs, ...
+     %scicos_lhb_list, %CmenuTypeOneVector, %scicos_gif, ...
+     %scicos_contrib,%scicos_libs] = initial_scicos_tables();
+     clear initial_scicos_tables
+   end
+  // =====================================================================
 
 [lhs,rhs] = argn(0) ;
 IN = [];
index 6e8b0ac..f687bd1 100644 (file)
@@ -41,7 +41,7 @@ function [scicos_pal, %scicos_menu, %scicos_short, %scicos_help, ...
           %scicos_lhb_list, %CmenuTypeOneVector,%scicos_gif, ...
           %scicos_contrib,%scicos_libs] = initial_scicos_tables()
 
-//**        This function is called from "scilab/scilab.star" at Scilab's startup
+//**        This function is called from "scicos" "scicos_simulate" "lincos" "steadycos"
 
   %scicos_display_mode = 0 ; //** obsolete: with the new graphics the display mode
                              //** is fixed
diff --git a/scilab/modules/scicos/tests/nonreg_tests/bug_4156.dia.ref b/scilab/modules/scicos/tests/nonreg_tests/bug_4156.dia.ref
new file mode 100644 (file)
index 0000000..b3ccf06
--- /dev/null
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 4156 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4156
+//
+// <-- Short Description -->
+// 
+//scicos_pal , %scicos_menu ,  %scicos_short ,
+//%scicos_help, %scicos_display_mode, scicos_pal_libs ,
+//%scicos_lhb_list, %CmenuTypeOneVector , %scicos_gif
+//%scicos_contrib  variables should not be defined at scilab startup but only when you launch scicos
+if isdef("scicos_pal") then bugmes();quit;end
+if isdef("%scicos_menu") then bugmes();quit;end
+if isdef("%scicos_short") then bugmes();quit;end
+if isdef("%scicos_help") then bugmes();quit;end
+if isdef("%scicos_display_mode") then bugmes();quit;end
+if isdef("modelica_libs") then bugmes();quit;end
+if isdef("scicos_pal_libs") then bugmes();quit;end
+if isdef("%scicos_lhb_list") then bugmes();quit;end
+if isdef("%CmenuTypeOneVector") then bugmes();quit;end
+if isdef("%scicos_gif") then bugmes();quit;end
+if isdef("%scicos_contrib") then bugmes();quit;end
+if isdef("%scicos_libs") then bugmes();quit;end
diff --git a/scilab/modules/scicos/tests/nonreg_tests/bug_4156.tst b/scilab/modules/scicos/tests/nonreg_tests/bug_4156.tst
new file mode 100644 (file)
index 0000000..b7944c7
--- /dev/null
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//
+// <-- Non-regression test for bug 4156 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4156
+//
+// <-- Short Description -->
+// 
+//scicos_pal , %scicos_menu ,  %scicos_short ,
+//%scicos_help, %scicos_display_mode, scicos_pal_libs ,
+//%scicos_lhb_list, %CmenuTypeOneVector , %scicos_gif
+//%scicos_contrib  variables should not be defined at scilab startup but only when you launch scicos
+
+if isdef("scicos_pal") then pause,end
+if isdef("%scicos_menu") then pause,end
+if isdef("%scicos_short") then pause,end
+if isdef("%scicos_help") then pause,end
+if isdef("%scicos_display_mode") then pause,end
+if isdef("modelica_libs") then pause,end
+if isdef("scicos_pal_libs") then pause,end
+if isdef("%scicos_lhb_list") then pause,end
+if isdef("%CmenuTypeOneVector") then pause,end
+if isdef("%scicos_gif") then pause,end
+if isdef("%scicos_contrib") then pause,end
+if isdef("%scicos_libs") then pause,end