Fix more segfaults in 64bits
Simon Lipp [Tue, 2 Sep 2008 07:13:00 +0000 (07:13 +0000)]
scilab/modules/gui/sci_gateway/c/sci_helpbrowser.c
scilab/modules/gui/sci_gateway/c/sci_messagebox.c
scilab/modules/gui/sci_gateway/c/sci_mpopup.c
scilab/modules/gui/sci_gateway/c/sci_progressionbar.c
scilab/modules/gui/sci_gateway/c/sci_uigetfont.c
scilab/modules/gui/sci_gateway/c/sci_waitbar.c
scilab/modules/gui/sci_gateway/c/sci_x_choice.c
scilab/modules/gui/sci_gateway/c/sci_x_choose.c
scilab/modules/gui/sci_gateway/c/sci_x_choose_modeless.c
scilab/modules/gui/sci_gateway/c/sci_x_dialog.c
scilab/modules/gui/sci_gateway/c/sci_x_mdialog.c

index 6b418da..aa851e7 100644 (file)
@@ -76,11 +76,11 @@ int sci_helpbrowser(char *fname,unsigned long fname_len)
 
       if (helpAdr == NULL) /* No toolboxes loaded */
         {
-          launchHelpBrowser(NULL, nbRowHelp*nbColHelp, getStringMatrixFromStack((int)languageAdr)[0]);
+          launchHelpBrowser(NULL, nbRowHelp*nbColHelp, getStringMatrixFromStack((size_t)languageAdr)[0]);
         }
       else
         {
-          launchHelpBrowser(getStringMatrixFromStack((int)helpAdr), nbRowHelp*nbColHelp, getStringMatrixFromStack((int)languageAdr)[0]);
+          launchHelpBrowser(getStringMatrixFromStack((size_t)helpAdr), nbRowHelp*nbColHelp, getStringMatrixFromStack((size_t)languageAdr)[0]);
         }
     }
   else if (Rhs == 4)
@@ -132,11 +132,11 @@ int sci_helpbrowser(char *fname,unsigned long fname_len)
       
       if (helpAdr == NULL) /* No toolboxes loaded */
         {
-          searchKeyword(NULL, nbRowHelp*nbColHelp, getStringMatrixFromStack((int)keywordAdr)[0], getStringMatrixFromStack((int)languageAdr)[0], *istk(fullTextAdr)==1);
+          searchKeyword(NULL, nbRowHelp*nbColHelp, getStringMatrixFromStack((size_t)keywordAdr)[0], getStringMatrixFromStack((size_t)languageAdr)[0], *istk(fullTextAdr)==1);
         }
       else
         {
-          searchKeyword(getStringMatrixFromStack((int)helpAdr), nbRowHelp*nbColHelp, getStringMatrixFromStack((int)keywordAdr)[0], getStringMatrixFromStack((int)languageAdr)[0], *istk(fullTextAdr)==1);
+          searchKeyword(getStringMatrixFromStack((size_t)helpAdr), nbRowHelp*nbColHelp, getStringMatrixFromStack((size_t)keywordAdr)[0], getStringMatrixFromStack((size_t)languageAdr)[0], *istk(fullTextAdr)==1);
         }
     }
   else
index 658382a..0af494c 100644 (file)
@@ -34,7 +34,7 @@ int sci_messagebox(char *fname,unsigned long fname_len)
   char **messageAdr = 0;
   char **titleAdr = 0;
   char **modalOptionAdr = 0;
-  int iconAdr = 0;
+  char **iconAdr = 0;
 
   /* Used to write output argument */
   int buttonNumberAdr = 0;
@@ -126,7 +126,7 @@ int sci_messagebox(char *fname,unsigned long fname_len)
           if (nbRow*nbCol == 1)
             {
               /* The buttons names argument can be used to give the modal option */
-              if (isModalOption(getStringMatrixFromStack((int)buttonsTextAdr)[0]))
+              if (isModalOption(getStringMatrixFromStack((size_t)buttonsTextAdr)[0]))
                 {
                   modalOptionAdr = buttonsTextAdr;
                   buttonsTextAdr = 0;
index 0154f89..8f3787f 100644 (file)
 /*--------------------------------------------------------------------------*/
 int sci_mpopup(char *fname,unsigned long fname_len)
 {
-  int nbRow = 0,  nbCol = 0, menuAdr = 0;
+  int nbRow = 0, nbCol = 0;
 
   char * res = NULL;
+  char **menuAdr = NULL;
   int resAdr = 0;
 
   CheckRhs(1,1);
index fa2a50a..7b4edc7 100644 (file)
@@ -69,7 +69,7 @@ int sci_progressionbar(char *fname,unsigned long fname_len)
           waitbarID = createWaitBar();
           pPROGRESSIONBAR_FEATURE(pObj)->hashMapIndex = waitbarID;
           setWaitBarIndeterminateMode(waitbarID, TRUE);
-          setWaitBarMessage(waitbarID, getStringMatrixFromStack((int)messageAdr), nbColMessage*nbRowMessage);
+          setWaitBarMessage(waitbarID, getStringMatrixFromStack((size_t)messageAdr), nbColMessage*nbRowMessage);
         }
       else
         {
@@ -97,7 +97,7 @@ int sci_progressionbar(char *fname,unsigned long fname_len)
 
           waitbarID = pPROGRESSIONBAR_FEATURE(pObj)->hashMapIndex;
           setWaitBarValue(waitbarID, 0); /* Update */
-          setWaitBarMessage(waitbarID, getStringMatrixFromStack((int)messageAdr), nbColMessage*nbRowMessage);
+          setWaitBarMessage(waitbarID, getStringMatrixFromStack((size_t)messageAdr), nbColMessage*nbRowMessage);
        }
       else
         {
index e864ab3..72c60bd 100644 (file)
@@ -121,7 +121,7 @@ int sci_uigetfont(char *fname,unsigned long fname_len)
   /* Default font */
   if (fontNameAdr != 0)
     {
-      setFontChooserFontName(fontChooserID, getStringMatrixFromStack((int)fontNameAdr)[0]);
+      setFontChooserFontName(fontChooserID, getStringMatrixFromStack((size_t)fontNameAdr)[0]);
     }
   
   /* Default size */
index 3db49db..7ff6b9c 100644 (file)
@@ -71,11 +71,11 @@ int sci_waitbar(char *fname,unsigned long fname_len)
 
       if (fractionAdr !=0)
         {
-          setWaitBarValue(waitbarID, (int)(getDoubleFromStack((int)messageAdr) * 100));
+          setWaitBarValue(waitbarID, (int)(getDoubleFromStack((size_t)messageAdr) * 100));
         }
       else if (messageAdr != 0)
         {
-          setWaitBarMessage(waitbarID, getStringMatrixFromStack((int)messageAdr), nbColMessage*nbRowMessage);
+          setWaitBarMessage(waitbarID, getStringMatrixFromStack((size_t)messageAdr), nbColMessage*nbRowMessage);
         }
     }
   else if (Rhs==2)
@@ -95,7 +95,7 @@ int sci_waitbar(char *fname,unsigned long fname_len)
           setWaitBarIndeterminateMode(waitbarID, FALSE);
 
           setWaitBarValue(waitbarID, (int)(getDoubleFromStack(fractionAdr) * 100));
-          setWaitBarMessage(waitbarID, getStringMatrixFromStack((int)messageAdr), nbColMessage*nbRowMessage);
+          setWaitBarMessage(waitbarID, getStringMatrixFromStack((size_t)messageAdr), nbColMessage*nbRowMessage);
        }
       else if (VarType(1) == sci_matrix && VarType(2) == sci_handles) /* waitbar(x,winId) */
         {
@@ -134,7 +134,7 @@ int sci_waitbar(char *fname,unsigned long fname_len)
           pObj = sciGetPointerFromHandle(GraphicHandle);
 
           waitbarID = pWAITBAR_FEATURE(pObj)->hashMapIndex;
-          setWaitBarMessage(waitbarID, getStringMatrixFromStack((int)messageAdr), nbColMessage*nbRowMessage);
+          setWaitBarMessage(waitbarID, getStringMatrixFromStack((size_t)messageAdr), nbColMessage*nbRowMessage);
         }
       else
         {
@@ -189,7 +189,7 @@ int sci_waitbar(char *fname,unsigned long fname_len)
       waitbarID = pWAITBAR_FEATURE(pObj)->hashMapIndex;
 
       setWaitBarValue(waitbarID, (int)(getDoubleFromStack(fractionAdr) * 100));
-      setWaitBarMessage(waitbarID, getStringMatrixFromStack((int)messageAdr), nbColMessage*nbRowMessage);
+      setWaitBarMessage(waitbarID, getStringMatrixFromStack((size_t)messageAdr), nbColMessage*nbRowMessage);
     }
 
   if (Lhs == 1)
index 3c9c742..4560d40 100644 (file)
@@ -29,8 +29,8 @@ int C2F(sci_x_choice)(char *fname,unsigned long fname_len)
 
   int messageBoxID = 0;
 
-  int labelsAdr = 0;
-  int lineLabelsAdr = 0;
+  char **labelsAdr = NULL;
+  char **lineLabelsAdr = NULL;
   int defaultValuesAdr = 0;
   double *defaultValues = NULL;
   int *defaultValuesInt = NULL;
@@ -82,7 +82,7 @@ int C2F(sci_x_choice)(char *fname,unsigned long fname_len)
   setMessageBoxTitle(messageBoxID, _("Scilab Choices Request"));
 
   /* Message */
-  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack(labelsAdr), nbCol*nbRow);
+  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack((size_t)labelsAdr), nbCol*nbRow);
     
   /* READ THE LABELS */
   if (VarType(3) ==  sci_strings)
@@ -93,7 +93,7 @@ int C2F(sci_x_choice)(char *fname,unsigned long fname_len)
         Scierror(999, _("%s: Wrong size for input argument #%d: Vector of strings expected.\n"), fname, 3);
         return FALSE;
       }
-      setMessageBoxLineLabels(messageBoxID, getStringMatrixFromStack(lineLabelsAdr), nbColLineLabels*nbRowLineLabels);
+      setMessageBoxLineLabels(messageBoxID, getStringMatrixFromStack((size_t)lineLabelsAdr), nbColLineLabels*nbRowLineLabels);
     }
   else 
     {
index 179dc0a..597f0b6 100644 (file)
@@ -26,10 +26,10 @@ int C2F(sci_x_choose)(char *fname,unsigned long fname_len)
 
   int messageBoxID = 0;
 
-  int itemsAdr = 0;
-  int buttonLabelAdr = 0;
+  char **itemsAdr = NULL;
+  char **buttonLabelAdr = NULL;
 
-  int messageAdr = 0;
+  char **messageAdr = NULL;
 
   int userValueAdr = 0;
   int userValue = 0;
@@ -63,9 +63,9 @@ int C2F(sci_x_choose)(char *fname,unsigned long fname_len)
   /* Title is a default title */
   setMessageBoxTitle(messageBoxID, _("Scilab Choose Message"));
   /* Message */
-  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack(messageAdr), nbCol*nbRow);
+  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack((size_t)messageAdr), nbCol*nbRow);
   /* ListBox Items */
-  setMessageBoxListBoxItems(messageBoxID, getStringMatrixFromStack(itemsAdr), nbColItems*nbRowItems);
+  setMessageBoxListBoxItems(messageBoxID, getStringMatrixFromStack((size_t)itemsAdr), nbColItems*nbRowItems);
   /* Modality */
   setMessageBoxModal(messageBoxID, TRUE);
     
@@ -86,7 +86,7 @@ int C2F(sci_x_choose)(char *fname,unsigned long fname_len)
           return FALSE;
         }
 
-      setMessageBoxButtonsLabels(messageBoxID, getStringMatrixFromStack(buttonLabelAdr), nbCol*nbRow);
+      setMessageBoxButtonsLabels(messageBoxID, getStringMatrixFromStack((size_t)buttonLabelAdr), nbCol*nbRow);
     }
 
   /* Display it and wait for a user input */
index dc343e8..71f8c83 100644 (file)
@@ -25,10 +25,10 @@ int C2F(sci_x_choose_modeless)(char *fname,unsigned long fname_len)
 
   int messageBoxID = 0;
 
-  int itemsAdr = 0;
-  int buttonLabelAdr = 0;
+  char **itemsAdr = NULL;
+  char **buttonLabelAdr = NULL;
 
-  int messageAdr = 0;
+  char **messageAdr = NULL;
 
   int userValueAdr = 0;
   int userValue = 0;
@@ -62,9 +62,9 @@ int C2F(sci_x_choose_modeless)(char *fname,unsigned long fname_len)
   /* Title is a default title */
   setMessageBoxTitle(messageBoxID, _("Scilab Choose Message"));
   /* Message */
-  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack(messageAdr), nbCol*nbRow);
+  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack((size_t)messageAdr), nbCol*nbRow);
   /* ListBox Items */
-  setMessageBoxListBoxItems(messageBoxID, getStringMatrixFromStack(itemsAdr), nbColItems*nbRowItems);
+  setMessageBoxListBoxItems(messageBoxID, getStringMatrixFromStack((size_t)itemsAdr), nbColItems*nbRowItems);
   /* Modality */
   setMessageBoxModal(messageBoxID, FALSE);
     
@@ -85,7 +85,7 @@ int C2F(sci_x_choose_modeless)(char *fname,unsigned long fname_len)
           return FALSE;
         }
 
-      setMessageBoxButtonsLabels(messageBoxID, getStringMatrixFromStack(buttonLabelAdr), nbCol*nbRow);
+      setMessageBoxButtonsLabels(messageBoxID, getStringMatrixFromStack((size_t)buttonLabelAdr), nbCol*nbRow);
     }
 
   /* Display it and wait for a user input */
index 34304f5..328d35b 100644 (file)
@@ -53,7 +53,7 @@ int C2F(sci_x_dialog)(char *fname,unsigned long fname_len)
   /* Title is a default title */
   setMessageBoxTitle(messageBoxID, _("Scilab Input Value Request"));
   /* Message */
-  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack((int)labelsAdr), nbCol*nbRow);
+  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack((size_t)labelsAdr), nbCol*nbRow);
     
   if (Rhs == 2)
     {
@@ -67,7 +67,7 @@ int C2F(sci_x_dialog)(char *fname,unsigned long fname_len)
           return FALSE;
         }
 
-      setMessageBoxInitialValue(messageBoxID, getStringMatrixFromStack((int)initialValueAdr), nbCol*nbRow);
+      setMessageBoxInitialValue(messageBoxID, getStringMatrixFromStack((size_t)initialValueAdr), nbCol*nbRow);
     }
 
   /* Display it and wait for a user input */
index 3da9082..51b7f08 100644 (file)
@@ -28,10 +28,10 @@ int C2F(sci_x_mdialog)(char *fname,unsigned long fname_len)
 
   int messageBoxID = 0;
 
-  int labelsAdr = 0;
-  int lineLabelsAdr = 0;
-  int columnLabelsAdr = 0;
-  int defaultValuesAdr = 0;
+  char **labelsAdr = NULL;
+  char **lineLabelsAdr = NULL;
+  char **columnLabelsAdr = NULL;
+  char **defaultValuesAdr = NULL;
 
   int userValueSize = 0;
   char **userValue = NULL;
@@ -58,7 +58,7 @@ int C2F(sci_x_mdialog)(char *fname,unsigned long fname_len)
   /* Title is a default title */
   setMessageBoxTitle(messageBoxID, _("Scilab Multiple Values Request"));
   /* Message */
-  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack(labelsAdr), nbCol*nbRow);
+  setMessageBoxMultiLineMessage(messageBoxID, getStringMatrixFromStack((size_t)labelsAdr), nbCol*nbRow);
     
   /* READ THE LINE LABELS */
   if (VarType(2) ==  sci_strings)
@@ -69,7 +69,7 @@ int C2F(sci_x_mdialog)(char *fname,unsigned long fname_len)
         Scierror(999, _("%s: Wrong size for input argument #%d: Vector of strings expected.\n"), fname, 2);
         return FALSE;
       }
-      setMessageBoxLineLabels(messageBoxID, getStringMatrixFromStack(lineLabelsAdr), nbColLineLabels*nbRowLineLabels);
+      setMessageBoxLineLabels(messageBoxID, getStringMatrixFromStack((size_t)lineLabelsAdr), nbColLineLabels*nbRowLineLabels);
     }
   else 
     {
@@ -88,7 +88,7 @@ int C2F(sci_x_mdialog)(char *fname,unsigned long fname_len)
               Scierror(999, _("%s: Wrong size for input argument #%d: Vector of strings expected.\n"), fname, 3);
               return FALSE;
             }
-          setMessageBoxDefaultInput(messageBoxID, getStringMatrixFromStack(defaultValuesAdr), nbColDefaultValues*nbRowDefaultValues);
+          setMessageBoxDefaultInput(messageBoxID, getStringMatrixFromStack((size_t)defaultValuesAdr), nbColDefaultValues*nbRowDefaultValues);
         }
       else
         {
@@ -98,7 +98,7 @@ int C2F(sci_x_mdialog)(char *fname,unsigned long fname_len)
               Scierror(999, _("%s: Wrong size for input argument #%d: Vector of strings expected.\n"), fname, 3);
               return FALSE;
             }
-          setMessageBoxColumnLabels(messageBoxID, getStringMatrixFromStack(columnLabelsAdr), nbColColumnLabels*nbRowColumnLabels);
+          setMessageBoxColumnLabels(messageBoxID, getStringMatrixFromStack((size_t)columnLabelsAdr), nbColColumnLabels*nbRowColumnLabels);
        }
     }
   else 
@@ -118,7 +118,7 @@ int C2F(sci_x_mdialog)(char *fname,unsigned long fname_len)
               Scierror(999, _("%s: Wrong size for input argument #%d: %d x %d matrix of strings expected.\n"),fname, 4, nbRowLineLabels*nbColLineLabels, nbRowColumnLabels*nbColColumnLabels);
               return FALSE;
             }
-          setMessageBoxDefaultInput(messageBoxID, getStringMatrixFromStack(defaultValuesAdr), nbColDefaultValues*nbRowDefaultValues);
+          setMessageBoxDefaultInput(messageBoxID, getStringMatrixFromStack((size_t)defaultValuesAdr), nbColDefaultValues*nbRowDefaultValues);
         }
       else 
         {