Bug 12887 fixed: Scilab hung with auto_clear set to on and log_flags set to true 36/12636/2
Calixte DENIZET [Mon, 23 Sep 2013 14:43:49 +0000 (16:43 +0200)]
Change-Id: I50ec525edfe871aea5979e6ee075959a0eaca9cb

scilab/CHANGES_5.5.X
scilab/modules/graphics/help/en_US/axes_operations/axes_properties.xml
scilab/modules/graphics/src/c/Axes.c
scilab/modules/graphics/tests/nonreg_tests/bug_12887.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_12887.tst [new file with mode: 0644]

index 3aeda6b..0f67e9f 100644 (file)
@@ -716,6 +716,8 @@ Bug Fixes
 
 * Bug #12875 fixed - phasemag returned an error for input vector containing zeros.
 
+* Bug #12887 fixed - Scilab hung with auto_clear set to on and log_flags set to true.
+
 * Bug #12888 fixed - sysdiag was not documented about block diagonal matrices build.
 
 * Bug #12906 fixed - champ and champ1 help pages updated
index 76bedcc..7bd358f 100644 (file)
                                 <para>
                                     If this property value is equal to <literal>"on"</literal>, a call
                                     to a high level graphic will re-ininitialize the current axes and
-                                    erase all its children before preforming the drawing. If the value
-                                    is <literal>"off"</literal> the drawings will be added to current axes
+                                    erase all its children before preforming the drawing (log_flags will be reset).
+                                    If the value is <literal>"off"</literal> the drawings will be added to current axes
                                     according to <literal>"auto_scale"</literal> property.
                                 </para>
                             </listitem>
index b8aa8ea..f5d1d5e 100644 (file)
@@ -121,6 +121,11 @@ static void initSubWinBounds(char * pSubWinUID)
     double* dataBounds = NULL;
     double* realDataBounds = NULL;
     char* axesModelUID = (char*)getAxesModel();
+    int linLogFlag = 0;
+
+    setGraphicObjectProperty(pSubWinUID, __GO_X_AXIS_LOG_FLAG__, &linLogFlag, jni_bool, 1);
+    setGraphicObjectProperty(pSubWinUID, __GO_Y_AXIS_LOG_FLAG__, &linLogFlag, jni_bool, 1);
+    setGraphicObjectProperty(pSubWinUID, __GO_Z_AXIS_LOG_FLAG__, &linLogFlag, jni_bool, 1);
 
     getGraphicObjectProperty(axesModelUID, __GO_DATA_BOUNDS__, jni_double_vector, (void **)&dataBounds);
     setGraphicObjectProperty(pSubWinUID, __GO_DATA_BOUNDS__, dataBounds, jni_double_vector, 6);
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_12887.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_12887.dia.ref
new file mode 100644 (file)
index 0000000..5fcd1ba
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// <-- Non-regression test for bug 12887 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/12887
+//
+// <-- Short Description -->
+// Scilab hung with auto_clear set to on and log_flags set to true.
+//
+f=gcf();
+set(gca(),"auto_clear","on")
+plot(1:20,1:20,"-");
+axis=get("current_axes");
+axis.log_flags = "ll";
+plot(1:10,1:10,"-");
+delete(f);
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_12887.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_12887.tst
new file mode 100644 (file)
index 0000000..9597eb2
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+// <-- Non-regression test for bug 12887 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/12887
+//
+// <-- Short Description -->
+// Scilab hung with auto_clear set to on and log_flags set to true.
+//
+
+f=gcf();
+
+set(gca(),"auto_clear","on")
+plot(1:20,1:20,"-");
+axis=get("current_axes");
+axis.log_flags = "ll";
+plot(1:10,1:10,"-");
+
+delete(f);
\ No newline at end of file