[Spice-devel] [PATCH spice-gtk v3 5/5] Use SPICE_ALIGNED_CAST to silence warning with ucontext on macOS
Christophe de Dinechin
christophe at dinechin.org
Wed May 17 05:08:26 UTC 2017
From: Christophe de Dinechin <dinechin at redhat.com>
Signed-off-by: Christophe de Dinechin <dinechin at redhat.com>
---
configure.ac | 3 ++-
src/channel-cursor.c | 6 +++---
src/channel-display-mjpeg.c | 2 +-
src/continuation.h | 6 ++++--
src/decode-glz-tmpl.c | 2 +-
src/spice-channel.c | 10 +++++-----
6 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/configure.ac b/configure.ac
index ecab365..8b433ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -481,7 +481,8 @@ if test "$with_coroutine" = "auto"; then
if test "$os_win32" = "yes"; then
with_coroutine=winfiber
elif test "$os_mac" = "yes"; then
- with_coroutine=gthread
+ with_coroutine=ucontext
+ AC_DEFINE([_XOPEN_SOURCE], [1], [Define _XOPEN_SOURCE on macOS for ucontext])
else
with_coroutine=ucontext
fi
diff --git a/src/channel-cursor.c b/src/channel-cursor.c
index 50de5ce..650d408 100644
--- a/src/channel-cursor.c
+++ b/src/channel-cursor.c
@@ -340,7 +340,7 @@ static display_cursor *set_cursor(SpiceChannel *channel, SpiceCursor *scursor)
memcpy(cursor->data, data, size);
for (i = 0; i < hdr->width * hdr->height; i++) {
pix_mask = get_pix_mask(data, size, i);
- if (pix_mask && *(SPICE_ALIGNED_CAST(guint32*, data) + i) == 0xffffff) {
+ if (pix_mask && *(SPICE_ALIGNED_CAST(guint32 *, data) + i) == 0xffffff) {
cursor->data[i] = get_pix_hack(i, hdr->width);
} else {
cursor->data[i] |= (pix_mask ? 0 : 0xff000000);
@@ -350,7 +350,7 @@ static display_cursor *set_cursor(SpiceChannel *channel, SpiceCursor *scursor)
case SPICE_CURSOR_TYPE_COLOR16:
for (i = 0; i < hdr->width * hdr->height; i++) {
pix_mask = get_pix_mask(data, size, i);
- pix = *(SPICE_ALIGNED_CAST(guint16*,data) + i);
+ pix = *(SPICE_ALIGNED_CAST(guint16 *, data) + i);
if (pix_mask && pix == 0x7fff) {
cursor->data[i] = get_pix_hack(i, hdr->width);
} else {
@@ -364,7 +364,7 @@ static display_cursor *set_cursor(SpiceChannel *channel, SpiceCursor *scursor)
for (i = 0; i < hdr->width * hdr->height; i++) {
pix_mask = get_pix_mask(data, size + (sizeof(uint32_t) << 4), i);
int idx = (i & 1) ? (data[i >> 1] & 0x0f) : ((data[i >> 1] & 0xf0) >> 4);
- pix = *(SPICE_UNALIGNED_CAST(uint32_t*,(data + size)) + idx);
+ pix = *(SPICE_UNALIGNED_CAST(uint32_t *, (data + size)) + idx);
if (pix_mask && pix == 0xffffff) {
cursor->data[i] = get_pix_hack(i, hdr->width);
} else {
diff --git a/src/channel-display-mjpeg.c b/src/channel-display-mjpeg.c
index 17c0f4f..ee33b01 100644
--- a/src/channel-display-mjpeg.c
+++ b/src/channel-display-mjpeg.c
@@ -151,7 +151,7 @@ static gboolean mjpeg_decoder_decode_frame(gpointer video_decoder)
#ifndef JCS_EXTENSIONS
{
uint8_t *s = lines[0];
- uint32_t *d = SPICE_ALIGNED_CAST(uint32_t *,s);
+ uint32_t *d = SPICE_ALIGNED_CAST(uint32_t *, s);
if (back_compat) {
for (unsigned int j = lines_read * width; j > 0; ) {
diff --git a/src/continuation.h b/src/continuation.h
index 675a257..d1fd137 100644
--- a/src/continuation.h
+++ b/src/continuation.h
@@ -21,6 +21,7 @@
#ifndef _CONTINUATION_H_
#define _CONTINUATION_H_
+#include "spice-common.h"
#include <stddef.h>
#include <ucontext.h>
#include <setjmp.h>
@@ -48,8 +49,9 @@ int cc_release(struct continuation *cc);
int cc_swap(struct continuation *from, struct continuation *to);
#define offset_of(type, member) ((unsigned long)(&((type *)0)->member))
-#define container_of(obj, type, member) \
- (type *)(((char *)obj) - offset_of(type, member))
+#define container_of(obj, type, member) \
+ SPICE_ALIGNED_CAST(type *, \
+ (((char *)obj) - offset_of(type, member)))
#endif
/*
diff --git a/src/decode-glz-tmpl.c b/src/decode-glz-tmpl.c
index 7695a28..76d832c 100644
--- a/src/decode-glz-tmpl.c
+++ b/src/decode-glz-tmpl.c
@@ -178,7 +178,7 @@ static size_t FNAME(decode)(SpiceGlzDecoderWindow *window,
uint64_t image_id, SpicePalette *plt)
{
uint8_t *ip = in_buf;
- OUT_PIXEL *out_pix_buf = SPICE_ALIGNED_CAST(OUT_PIXEL *,out_buf);
+ OUT_PIXEL *out_pix_buf = SPICE_ALIGNED_CAST(OUT_PIXEL *, out_buf);
OUT_PIXEL *op = out_pix_buf;
OUT_PIXEL *op_limit = out_pix_buf + size;
diff --git a/src/spice-channel.c b/src/spice-channel.c
index 88d0567..89934a0 100644
--- a/src/spice-channel.c
+++ b/src/spice-channel.c
@@ -1312,7 +1312,7 @@ static void spice_channel_send_link(SpiceChannel *channel)
{
SpiceChannelPrivate *c = channel->priv;
uint8_t *buffer, *p;
- uint32_t *p32;
+ uint32_t *caps;
int protocol, i;
c->link_hdr.magic = SPICE_MAGIC;
@@ -1358,14 +1358,14 @@ static void spice_channel_send_link(SpiceChannel *channel)
memcpy(p, &c->link_msg, sizeof(c->link_msg)); p += sizeof(c->link_msg);
// Need this to avoid error with -Wcast-align
- p32 = SPICE_UNALIGNED_CAST(uint32_t *,p);
+ caps = SPICE_UNALIGNED_CAST(uint32_t *, p);
for (i = 0; i < c->common_caps->len; i++) {
- *p32++ = GUINT32_TO_LE(g_array_index(c->common_caps, uint32_t, i));
+ *caps++ = GUINT32_TO_LE(g_array_index(c->common_caps, uint32_t, i));
}
for (i = 0; i < c->caps->len; i++) {
- *p32++ = GUINT32_TO_LE(g_array_index(c->caps, uint32_t, i));
+ *caps++ = GUINT32_TO_LE(g_array_index(c->caps, uint32_t, i));
}
- p = (uint8_t *) p32;
+ p = (uint8_t *) caps;
CHANNEL_DEBUG(channel, "channel type %d id %d num common caps %u num caps %u",
c->channel_type,
c->channel_id,
--
2.11.0 (Apple Git-81)
More information about the Spice-devel
mailing list