* Bug #13222 fixed - ATOMS GUI was broken. 34/13634/1
Vincent COUVERT [Mon, 3 Feb 2014 08:48:32 +0000 (09:48 +0100)]
(The userdata property could not be set using figure()).

Change-Id: I41393a8fb7f570364c98c27967cf8923640bfc64

scilab/modules/gui/sci_gateway/c/sci_figure.c
scilab/modules/gui/tests/nonreg_tests/bug_13222.dia.ref [new file with mode: 0644]
scilab/modules/gui/tests/nonreg_tests/bug_13222.tst [new file with mode: 0644]

index 4f6fc91..d084ce2 100644 (file)
@@ -228,10 +228,10 @@ int sci_figure(char * fname, unsigned long fname_len)
                 return 1;
             }
             if (stricmp(pstProName, "dockable") != 0
-                && stricmp(pstProName, "toolbar") != 0
-                && stricmp(pstProName, "menubar") != 0
-                && stricmp(pstProName, "default_axes") != 0
-                && stricmp(pstProName, "visible") != 0 )
+                    && stricmp(pstProName, "toolbar") != 0
+                    && stricmp(pstProName, "menubar") != 0
+                    && stricmp(pstProName, "default_axes") != 0
+                    && stricmp(pstProName, "visible") != 0 )
             {
                 freeAllocatedSingleString(pstProName);
                 continue;
@@ -457,19 +457,19 @@ int sci_figure(char * fname, unsigned long fname_len)
                     _pvData = (void*)piAddrData;         /* In this case l3 is the list position in stack */
                     break;
             }
+        }
 
-            callSetProperty(pvApiCtx, iFig, _pvData, iType, iRows, iCols, pstProName);
-            if (iType == sci_strings)
+        callSetProperty(pvApiCtx, iFig, _pvData, iType, iRows, iCols, pstProName);
+        if (iType == sci_strings)
+        {
+            //free allacted data
+            if (isMatrixOfString == 1)
             {
-                //free allacted data
-                if (isMatrixOfString == 1)
-                {
-                    freeAllocatedMatrixOfString(iRows, iCols, (char**)_pvData);
-                }
-                else
-                {
-                    freeAllocatedSingleString((char*)_pvData);
-                }
+                freeAllocatedMatrixOfString(iRows, iCols, (char**)_pvData);
+            }
+            else
+            {
+                freeAllocatedSingleString((char*)_pvData);
             }
         }
     }
diff --git a/scilab/modules/gui/tests/nonreg_tests/bug_13222.dia.ref b/scilab/modules/gui/tests/nonreg_tests/bug_13222.dia.ref
new file mode 100644 (file)
index 0000000..f9bb264
--- /dev/null
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vincent COUVERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Non-regression test for bug 13222 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13222
+//
+// <-- Short Description -->
+// ATOMS GUI is not showing any list module.
+// ==> Related to the fact that figure() does not set the userdata property
+f = figure("UserData", 13222);
+assert_checkequal(f.userdata, 13222);
diff --git a/scilab/modules/gui/tests/nonreg_tests/bug_13222.tst b/scilab/modules/gui/tests/nonreg_tests/bug_13222.tst
new file mode 100644 (file)
index 0000000..126840d
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vincent COUVERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Non-regression test for bug 13222 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13222
+//
+// <-- Short Description -->
+// ATOMS GUI is not showing any list module.
+// ==> Related to the fact that figure() does not set the userdata property
+
+f = figure("UserData", 13222);
+assert_checkequal(f.userdata, 13222);
\ No newline at end of file