File xdaliclock-2.30-strict_aliasing.patch of Package xdaliclock
Index: X11/overlay.c
===================================================================
--- X11/overlay.c.orig
+++ X11/overlay.c
@@ -65,7 +65,12 @@ get_overlay_prop (Screen *screen, struct
Atom actual_type;
int actual_format;
unsigned long nitems, bytes_after;
- struct overlay_data *data = 0;
+
+ union {
+ struct overlay_data *s_data;
+ unsigned char *u_data;
+ } data = { NULL };
+
Display *dpy = DisplayOfScreen(screen);
Window window = RootWindowOfScreen(screen);
Atom XA_SERVER_OVERLAY_VISUALS =
@@ -77,19 +82,19 @@ get_overlay_prop (Screen *screen, struct
XA_SERVER_OVERLAY_VISUALS,
&actual_type, &actual_format,
&nitems, &bytes_after,
- (unsigned char **) &data);
+ &data.u_data);
if (result != Success ||
actual_type != XA_SERVER_OVERLAY_VISUALS ||
actual_format != 32 ||
nitems < 1)
{
- if (data) XFree(data);
+ if (data.s_data) XFree(data.s_data);
return 0;
}
else
{
- *data_ret = data;
- return nitems / (sizeof(*data) / sizeof(CARD32));
+ *data_ret = data.s_data;
+ return nitems / (sizeof(*data.s_data) / sizeof(CARD32));
}
}