mirror of
https://github.com/gryf/wmaker.git
synced 2026-03-08 02:25:50 +01:00
wmaker: Fix compiler warnings about pointer <--> integer conversion
There may be issues with running applications in 64-bit mode when
they were written with tacit assumptions about 32-bit platforms.
For example,
* Assuming that a pointer can be cast back and forth to an integer
The reason is that the size of the integer and pointer may be different.
See the description of "[PATCH] Warn when casting a pointer (constant)
to an integer of different size." in the gcc mailing list
http://gcc.gnu.org/ml/gcc-patches/2005-12/msg01881.html
where it was also suggested the use of casts to uintptr_t. This is
what this patch does.
As a result the following warnings are fixed, leaving us with an
almost warning-free compilation in 64-bit platforms:
defaults.c:1446: warning: cast to pointer from integer of different size
defaults.c:1457: warning: cast to pointer from integer of different size
defaults.c:1471: warning: cast to pointer from integer of different size
defaults.c:1486: warning: cast to pointer from integer of different size
icon.c:67: warning: cast from pointer to integer of different size
menu.c:112: warning: cast from pointer to integer of different size
switchmenu.c:452: warning: cast from pointer to integer of different size
window.c:140: warning: cast from pointer to integer of different size
window.c:2217: warning: cast to pointer from integer of different size
workspace.c:135: warning: cast to pointer from integer of different size
workspace.c:214: warning: cast to pointer from integer of different size
workspace.c:634: warning: cast to pointer from integer of different size
workspace.c:1330: warning: cast to pointer from integer of different size
workspace.c:1514: warning: cast to pointer from integer of different size
wfilepanel.c:135: warning: cast from pointer to integer of different size
wfilepanel.c:171: warning: cast from pointer to integer of different size
wfontpanel.c:499: warning: cast to pointer from integer of different size
wfontpanel.c:500: warning: cast to pointer from integer of different size
wfontpanel.c:505: warning: cast to pointer from integer of different size
wfontpanel.c:506: warning: cast to pointer from integer of different size
wfontpanel.c:776: warning: cast from pointer to integer of different size
wfontpanel.c:777: warning: cast from pointer to integer of different size
wfontpanel.c:877: warning: cast from pointer to integer of different size
wfontpanel.c:878: warning: cast from pointer to integer of different size
wpanel.c:363: warning: cast from pointer to integer of different size
fontl.c:42: warning: cast from pointer to integer of different size
fontl.c:42: warning: cast from pointer to integer of different size
fontl.c:42: warning: cast from pointer to integer of different size
fontl.c:90: warning: cast to pointer from integer of different size
puzzle.c:138: warning: cast from pointer to integer of different size
puzzle.c:225: warning: cast to pointer from integer of different size
wtableview.c:1031: warning: cast to pointer from integer of different size
wtableview.c:1067: warning: cast to pointer from integer of different size
wtableview.c:1069: warning: cast to pointer from integer of different size
wtableview.c:1074: warning: cast to pointer from integer of different size
wtabledelegates.c:234: warning: cast from pointer to integer of different size
wtabledelegates.c:250: warning: cast from pointer to integer of different size
wtabledelegates.c:265: warning: cast from pointer to integer of different size
wtabledelegates.c:287: warning: cast to pointer from integer of different size
wtabledelegates.c:351: warning: cast from pointer to integer of different size
wtabledelegates.c:372: warning: cast from pointer to integer of different size
wtabledelegates.c:393: warning: cast from pointer to integer of different size
wtabledelegates.c:410: warning: cast to pointer from integer of different size
test.c:44: warning: cast from pointer to integer of different size
test.c:47: warning: cast to pointer from integer of different size
test.c:55: warning: cast from pointer to integer of different size
test.c:58: warning: cast from pointer to integer of different size
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <X11/Xft/Xft.h>
|
||||
#include <fontconfig/fontconfig.h>
|
||||
@@ -496,14 +497,14 @@ addSizeToTypeface(Typeface *face, int size)
|
||||
for (j = 0; j < sizeof(scalableFontSizes)/sizeof(int); j++) {
|
||||
size = scalableFontSizes[j];
|
||||
|
||||
if (!WMCountInArray(face->sizes, (void*)size)) {
|
||||
WMAddToArray(face->sizes, (void*)size);
|
||||
if (!WMCountInArray(face->sizes, (void*)(uintptr_t)size)) {
|
||||
WMAddToArray(face->sizes, (void*)(uintptr_t)size);
|
||||
}
|
||||
}
|
||||
WMSortArray(face->sizes, compare_int);
|
||||
} else {
|
||||
if (!WMCountInArray(face->sizes, (void*)size)) {
|
||||
WMAddToArray(face->sizes, (void*)size);
|
||||
if (!WMCountInArray(face->sizes, (void*)(uintptr_t)size)) {
|
||||
WMAddToArray(face->sizes, (void*)(uintptr_t)size);
|
||||
WMSortArray(face->sizes, compare_int);
|
||||
}
|
||||
}
|
||||
@@ -773,8 +774,8 @@ typefaceClick(WMWidget *w, void *data)
|
||||
WMClearList(panel->sizLs);
|
||||
|
||||
WM_ITERATE_ARRAY(face->sizes, size, i) {
|
||||
if ((int)size != 0) {
|
||||
sprintf(buffer, "%i", (int)size);
|
||||
if ((int)(uintptr_t)size != 0) {
|
||||
sprintf(buffer, "%i", (int)(uintptr_t)size);
|
||||
|
||||
WMAddListItem(panel->sizLs, buffer);
|
||||
}
|
||||
@@ -874,8 +875,8 @@ setFontPanelFontName(FontPanel *panel, char *family, char *style, double size)
|
||||
|
||||
WM_ITERATE_ARRAY(face->sizes, vsize, i) {
|
||||
char buffer[32];
|
||||
if ((int)vsize != 0) {
|
||||
sprintf(buffer, "%i", (int)vsize);
|
||||
if ((int)(uintptr_t)vsize != 0) {
|
||||
sprintf(buffer, "%i", (int)(uintptr_t)vsize);
|
||||
|
||||
WMAddListItem(panel->sizLs, buffer);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user