From: Peter Hutterer Date: Thu, 16 Apr 2009 13:20:16 +0000 (-0400) Subject: Fix set-float-prop on 64-bit architectures. X-Git-Url: https://diplodocus.org/git/xorg-xinput/commitdiff_plain/a577bada8dddf3241a59cab812f5128131c46b29?hp=de6326a75de810752a5b4e4c2f5fe98a2f7241a9 Fix set-float-prop on 64-bit architectures. Since 32-byte data on 64-bit machines must be passed in as 64-bit longs, let's typecast around a bit. Signed-off-by: Peter Hutterer --- diff --git a/src/property.c b/src/property.c index 6729929..75bb973 100644 --- a/src/property.c +++ b/src/property.c @@ -251,7 +251,7 @@ set_float_prop(Display *dpy, int argc, char** argv, char* n, char *desc) char *name; int i; Bool is_atom = True; - float *data; + long *data; int nelements = 0; char* endptr; @@ -305,10 +305,10 @@ set_float_prop(Display *dpy, int argc, char** argv, char* n, char *desc) return EXIT_FAILURE; } - data = calloc(nelements, 4); + data = calloc(nelements, sizeof(long)); for (i = 0; i < nelements; i++) { - *(data + i) = strtod(argv[2 + i], &endptr); + *((float*)(data + i)) = strtod(argv[2 + i], &endptr); if(endptr == argv[2 + i]){ fprintf(stderr, "argument %s could not be parsed\n", argv[2 + i]); return EXIT_FAILURE;