Fix dtfile crash on 64 bit
authorMarcin Cieslak <saper@saper.info>
Sat, 22 Sep 2012 10:05:57 +0000 (12:05 +0200)
committerJon Trulson <jon@radscan.com>
Sun, 23 Sep 2012 01:04:21 +0000 (19:04 -0600)
When asking for data using XtVaGetValue()
make sure that there is enough place for
the return value (which is sometimes XtPointer).
Providing pointer to (int) is not enough.

Cast XtPointer into requested int types
directly, which unfortunately introduces
compilation warning:

cast from pointer to integer of different size

cde/programs/dtfile/File.c
cde/programs/dtfile/FileDialog.c
cde/programs/dtfile/OverWrite.c
cde/programs/dtfile/dtcopy/utils.c

index 3d9fba3cc458048ec0b9c4e199fe4add8eb53fba..9f88b1caae0cf4174fada68c10246e8e60641ba3 100644 (file)
@@ -7193,7 +7193,7 @@ CommitWorkProcUpdates(
    /* If not managed yet, manage the file window again */
    if (!XtIsManaged((Widget)file_window))
    {
-     int incr;
+     XtPointer incr;
      Arg args[2];
 
      XtManageChild ((Widget)file_window);
index 6843c338bcf014858cb825b04dd748b7fad72dd4..5a8577e70fb876c94ee453de3e6d37cbd8154e6e 100644 (file)
@@ -192,7 +192,7 @@ ShowRenameFileDialog(
 
   XmUpdateDisplay (w);
 
-  if((int)client_data != 0)
+  if(client_data != 0)
   {
     file_view_data = (FileViewData *)client_data;
     mbar = XtParent(w);
@@ -224,7 +224,7 @@ ShowRenameFileDialog(
   XtSetArg (args[n], XmNallowShellResize, True);  n++;
 
   /* Ignore accelerators when we're insensitive */
-  if((int)client_data == 0)
+  if(client_data == 0)
   {
     if ((file_mgr_rec->menuStates & RENAME) == 0)
       return;
@@ -270,6 +270,7 @@ ShowCopyFileDialog(
    char * directory_name;
    char * tmpStr, *tempStr;
 
+   XtPointer width;
    Dimension f_width, d_width;
 
    Widget shell;
@@ -301,7 +302,7 @@ ShowCopyFileDialog(
 
    XmUpdateDisplay (w);
 
-   if((int)client_data != 0)
+   if(client_data != 0)
    {
       file_view_data = (FileViewData *)client_data;
       mbar = XtParent(w);
@@ -542,16 +543,20 @@ ShowCopyFileDialog(
    /*  Make the two labels the same length - maximum.  */
    /* ------------------------------------------------ */
 
-   XtVaGetValues(dir_label, XmNwidth, &d_width, NULL);
-   XtVaGetValues(file_label, XmNwidth, &f_width, NULL);
+   XtVaGetValues(dir_label, XmNwidth, &width, NULL);
+   d_width = (Dimension)width;
+   XtVaGetValues(file_label, XmNwidth, &width, NULL);
+   f_width = (Dimension)width;
 
    if (d_width > f_width)
        XtVaSetValues(file_label, XmNwidth, d_width, NULL);
    else
        XtVaSetValues(dir_label, XmNwidth, f_width, NULL);
 
-   XtVaGetValues(dir_text, XmNwidth, &d_width, NULL);
-   XtVaGetValues(file_text, XmNwidth, &f_width, NULL);
+   XtVaGetValues(dir_text, XmNwidth, &width, NULL);
+   d_width = (Dimension)width;
+   XtVaGetValues(file_text, XmNwidth, &width, NULL);
+   f_width = (Dimension)width;
 
    if (d_width > f_width)
        XtVaSetValues(file_text, XmNwidth, d_width, NULL);
@@ -772,7 +777,7 @@ ShowMoveFileDialog(
 
    XmUpdateDisplay (w);
 
-   if((int)client_data != 0)
+   if(client_data != 0)
    {
       file_view_data = (FileViewData *)client_data;
       mbar = XtParent(w);
@@ -1097,7 +1102,7 @@ ShowLinkFileDialog(
 
    XmUpdateDisplay (w);
 
-   if((int)client_data != 0)
+   if(client_data != 0)
    {
       file_view_data = (FileViewData *)client_data;
       mbar = XtParent(w);
index e2f1d0be4fde639e4325ac3d53b4615885387fbc..38821b66234f555bdc0910fd2e78fcd1b7092db5 100644 (file)
@@ -1757,9 +1757,12 @@ Create_Action_Area(
 
        if (i == actions.defaultAction)
          {
+            XtPointer heightptr;
             Dimension height, h;
-            XtVaGetValues (action_area, XmNmarginHeight, &h, NULL);
-            XtVaGetValues (widget, XmNheight, &height, NULL);
+            XtVaGetValues (action_area, XmNmarginHeight, &heightptr, NULL);
+            height = (Dimension)heightptr;
+            XtVaGetValues (widget, XmNheight, &heightptr, NULL);
+            h = (Dimension)heightptr;
 
             height +=2 * h;
             XtVaSetValues (action_area,
index 196fa4327e01905da6c9f3ca9b9875be4e22f95a..824101bdb7cfb2585128a4f5e406d4336bd43fa6 100644 (file)
@@ -137,7 +137,7 @@ help_callback(
   char  *helpVolume, *locationId;
   int   topic;
 
-  topic = (int) client_data;
+  topic = (int)client_data;
   helpVolume = HELP_VOLUME;
 
   switch (topic)
@@ -418,9 +418,15 @@ Create_Action_Area(
 
        if (i == actions.defaultAction)
          {
+            union {
+                XtPointer ptr;
+                Dimension dim;
+            } wide;
             Dimension height, h;
-            XtVaGetValues (action_area, XmNmarginHeight, &h, NULL);
-            XtVaGetValues (widget, XmNheight, &height, NULL);
+            XtVaGetValues (action_area, XmNmarginHeight, &wide.ptr, NULL);
+            h = wide.dim;
+            XtVaGetValues (widget, XmNheight, &wide.ptr, NULL);
+            height = wide.dim;
 
             height +=2 * h;
             XtVaSetValues (action_area,