gcc 3.2.1 seems to have problems casting a double like 32772.0 to
authorChris Want <cwant@ualberta.ca>
Sat, 15 Feb 2003 04:18:22 +0000 (04:18 +0000)
committerChris Want <cwant@ualberta.ca>
Sat, 15 Feb 2003 04:18:22 +0000 (04:18 +0000)
a short, so we cast to an int first, then to a short when a button that
modifies a short value is pressed. (Allieviates the bug where the
Unified Renderer button modifies the values of a bunch of other buttons).

source/blender/src/interface.c

index 0209607d2e5ce1d08a9e92efbd66aae1e1d7207b..55605e9154ee1f05b271756eed8a497b6168ad15 100644 (file)
@@ -3337,8 +3337,15 @@ static void ui_set_but_val(uiBut *but, double value)
        }
        else if( but->pointype==CHA )
                *((char *)poin)= (char)value;
-       else if( but->pointype==SHO )
-               *((short *)poin)= (short)value;
+       else if( but->pointype==SHO ) {
+               /* gcc 3.2.1 seems to have problems 
+                * casting a double like 32772.0 to
+                * a short so we cast to an int, then 
+                to a short */
+               int gcckludge;
+               gcckludge = (int) value;
+               *((short *)poin)= (short) gcckludge;
+       }
        else if( but->pointype==INT )
                *((int *)poin)= (int)value;
        else if( but->pointype==FLO )