ping the series > > This patch came from some experiments using an emulated MIPS machine. > On such architecture due to not supporting alignment access the > compiler is more strict about conversion complaining with some > pointer casts. Use different conversion to avoid these warnings. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/cache-item.tmpl.c | 3 ++- > server/dcc.c | 4 ++-- > server/image-cache.c | 5 +++-- > server/image-encoders.c | 26 +++++++++++++------------- > server/mjpeg-encoder.c | 12 ++++++------ > server/pixmap-cache.c | 2 +- > 6 files changed, 27 insertions(+), 25 deletions(-) > > diff --git a/server/cache-item.tmpl.c b/server/cache-item.tmpl.c > index f119a9ee4..8e18f9b1b 100644 > --- a/server/cache-item.tmpl.c > +++ b/server/cache-item.tmpl.c > @@ -89,7 +89,8 @@ static int FUNC_NAME(add)(CHANNELCLIENT *channel_client, > uint64_t id, size_t siz > channel_client->priv->VAR_NAME(available) -= size; > SPICE_VERIFY(SPICE_OFFSETOF(RedCacheItem, u.cache_data.lru_link) == 0); > while (channel_client->priv->VAR_NAME(available) < 0) { > - RedCacheItem *tail = (RedCacheItem > *)ring_get_tail(&channel_client->priv->VAR_NAME(lru)); > + RedCacheItem *tail = > SPICE_CONTAINEROF(ring_get_tail(&channel_client->priv->VAR_NAME(lru)), > + RedCacheItem, > u.cache_data.lru_link); > if (!tail) { > channel_client->priv->VAR_NAME(available) += size; > g_free(item); > diff --git a/server/dcc.c b/server/dcc.c > index acc1ca38c..71d09b77f 100644 > --- a/server/dcc.c > +++ b/server/dcc.c > @@ -968,8 +968,8 @@ bool dcc_pixmap_cache_unlocked_add(DisplayChannelClient > *dcc, uint64_t id, > NewCacheItem **now; > > SPICE_VERIFY(SPICE_OFFSETOF(NewCacheItem, lru_link) == 0); > - if (!(tail = (NewCacheItem *)ring_get_tail(&cache->lru)) || > - tail->sync[dcc->priv->id] > == serial) { > + if (!(tail = SPICE_CONTAINEROF(ring_get_tail(&cache->lru), > NewCacheItem, lru_link)) || > + > tail->sync[dcc->priv->id] > == serial) { > cache->available += size; > g_free(item); > return FALSE; > diff --git a/server/image-cache.c b/server/image-cache.c > index 2ca4d4b67..4881f4d92 100644 > --- a/server/image-cache.c > +++ b/server/image-cache.c > @@ -78,7 +78,8 @@ static void image_cache_put(SpiceImageCache *spice_cache, > uint64_t id, pixman_im > #ifndef IMAGE_CACHE_AGE > if (cache->num_items == IMAGE_CACHE_MAX_ITEMS) { > SPICE_VERIFY(SPICE_OFFSETOF(ImageCacheItem, lru_link) == 0); > - ImageCacheItem *tail = (ImageCacheItem *)ring_get_tail(&cache->lru); > + ImageCacheItem *tail = > + SPICE_CONTAINEROF(ring_get_tail(&cache->lru), ImageCacheItem, > lru_link); > spice_assert(tail); > image_cache_remove(cache, tail); > } > @@ -133,7 +134,7 @@ void image_cache_reset(ImageCache *cache) > ImageCacheItem *item; > > SPICE_VERIFY(SPICE_OFFSETOF(ImageCacheItem, lru_link) == 0); > - while ((item = (ImageCacheItem *)ring_get_head(&cache->lru))) { > + while ((item = SPICE_CONTAINEROF(ring_get_head(&cache->lru), > ImageCacheItem, lru_link))) { > image_cache_remove(cache, item); > } > #ifdef IMAGE_CACHE_AGE > diff --git a/server/image-encoders.c b/server/image-encoders.c > index 306c6dca6..d4d486c36 100644 > --- a/server/image-encoders.c > +++ b/server/image-encoders.c > @@ -89,7 +89,7 @@ static void image_encoders_release_glz(ImageEncoders *enc); > static SPICE_GNUC_NORETURN SPICE_GNUC_PRINTF(2, 3) void > quic_usr_error(QuicUsrContext *usr, const char *fmt, ...) > { > - EncoderData *usr_data = &(((QuicData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, QuicData, usr)->data); > va_list ap; > char message_buf[ENCODER_MESSAGE_SIZE]; > > @@ -104,7 +104,7 @@ quic_usr_error(QuicUsrContext *usr, const char *fmt, ...) > static SPICE_GNUC_NORETURN SPICE_GNUC_PRINTF(2, 3) void > lz_usr_error(LzUsrContext *usr, const char *fmt, ...) > { > - EncoderData *usr_data = &(((LzData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, LzData, usr)->data); > va_list ap; > char message_buf[ENCODER_MESSAGE_SIZE]; > > @@ -233,25 +233,25 @@ static int encoder_usr_more_space(EncoderData > *enc_data, uint8_t **io_ptr) > > static int quic_usr_more_space(QuicUsrContext *usr, uint32_t **io_ptr, int > rows_completed) > { > - EncoderData *usr_data = &(((QuicData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, QuicData, usr)->data); > return encoder_usr_more_space(usr_data, (uint8_t **)io_ptr) / > sizeof(uint32_t); > } > > static int lz_usr_more_space(LzUsrContext *usr, uint8_t **io_ptr) > { > - EncoderData *usr_data = &(((LzData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, LzData, usr)->data); > return encoder_usr_more_space(usr_data, io_ptr); > } > > static int glz_usr_more_space(GlzEncoderUsrContext *usr, uint8_t **io_ptr) > { > - EncoderData *usr_data = &(((GlzData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, GlzData, usr)->data); > return encoder_usr_more_space(usr_data, io_ptr); > } > > static int jpeg_usr_more_space(JpegEncoderUsrContext *usr, uint8_t **io_ptr) > { > - EncoderData *usr_data = &(((JpegData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, JpegData, usr)->data); > return encoder_usr_more_space(usr_data, io_ptr); > } > > @@ -265,7 +265,7 @@ static int lz4_usr_more_space(Lz4EncoderUsrContext *usr, > uint8_t **io_ptr) > > static int zlib_usr_more_space(ZlibEncoderUsrContext *usr, uint8_t **io_ptr) > { > - EncoderData *usr_data = &(((ZlibData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, ZlibData, usr)->data); > return encoder_usr_more_space(usr_data, io_ptr); > } > > @@ -301,25 +301,25 @@ static inline int encoder_usr_more_lines(EncoderData > *enc_data, uint8_t **lines) > > static int quic_usr_more_lines(QuicUsrContext *usr, uint8_t **lines) > { > - EncoderData *usr_data = &(((QuicData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, QuicData, usr)->data); > return encoder_usr_more_lines(usr_data, lines); > } > > static int lz_usr_more_lines(LzUsrContext *usr, uint8_t **lines) > { > - EncoderData *usr_data = &(((LzData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, LzData, usr)->data); > return encoder_usr_more_lines(usr_data, lines); > } > > static int glz_usr_more_lines(GlzEncoderUsrContext *usr, uint8_t **lines) > { > - EncoderData *usr_data = &(((GlzData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, GlzData, usr)->data); > return encoder_usr_more_lines(usr_data, lines); > } > > static int jpeg_usr_more_lines(JpegEncoderUsrContext *usr, uint8_t **lines) > { > - EncoderData *usr_data = &(((JpegData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, JpegData, usr)->data); > return encoder_usr_more_lines(usr_data, lines); > } > > @@ -333,7 +333,7 @@ static int lz4_usr_more_lines(Lz4EncoderUsrContext *usr, > uint8_t **lines) > > static int zlib_usr_more_input(ZlibEncoderUsrContext *usr, uint8_t** input) > { > - EncoderData *usr_data = &(((ZlibData *)usr)->data); > + EncoderData *usr_data = &(SPICE_CONTAINEROF(usr, ZlibData, usr)->data); > int buf_size; > > if (!usr_data->u.compressed_data.next) { > @@ -386,7 +386,7 @@ static void image_encoders_init_lz(ImageEncoders *enc) > > static void glz_usr_free_image(GlzEncoderUsrContext *usr, GlzUsrImageContext > *image) > { > - GlzData *lz_data = (GlzData *)usr; > + GlzData *lz_data = SPICE_CONTAINEROF(usr, GlzData, usr); > GlzDrawableInstanceItem *glz_drawable_instance = > (GlzDrawableInstanceItem *)image; > ImageEncoders *drawable_enc = > glz_drawable_instance->glz_drawable->encoders; > ImageEncoders *this_enc = SPICE_CONTAINEROF(lz_data, ImageEncoders, > glz_data); > diff --git a/server/mjpeg-encoder.c b/server/mjpeg-encoder.c > index 4a02e7c8b..e629adae4 100644 > --- a/server/mjpeg-encoder.c > +++ b/server/mjpeg-encoder.c > @@ -206,7 +206,7 @@ static MJpegVideoBuffer* create_mjpeg_video_buffer(void) > > static void mjpeg_encoder_destroy(VideoEncoder *video_encoder) > { > - MJpegEncoder *encoder = (MJpegEncoder*)video_encoder; > + MJpegEncoder *encoder = SPICE_CONTAINEROF(video_encoder, MJpegEncoder, > base); > g_free(encoder->cinfo.dest); > jpeg_destroy_compress(&encoder->cinfo); > g_free(encoder->row); > @@ -931,7 +931,7 @@ static int mjpeg_encoder_encode_frame(VideoEncoder > *video_encoder, > gpointer bitmap_opaque, > VideoBuffer **outbuf) > { > - MJpegEncoder *encoder = (MJpegEncoder*)video_encoder; > + MJpegEncoder *encoder = SPICE_CONTAINEROF(video_encoder, MJpegEncoder, > base); > MJpegVideoBuffer *buffer = create_mjpeg_video_buffer(); > if (!buffer) { > return VIDEO_ENCODER_FRAME_UNSUPPORTED; > @@ -1191,7 +1191,7 @@ static void > mjpeg_encoder_client_stream_report(VideoEncoder *video_encoder, > int32_t end_frame_delay, > uint32_t audio_delay) > { > - MJpegEncoder *encoder = (MJpegEncoder*)video_encoder; > + MJpegEncoder *encoder = SPICE_CONTAINEROF(video_encoder, MJpegEncoder, > base); > MJpegEncoderRateControl *rate_control = &encoder->rate_control; > MJpegEncoderClientState *client_state = &rate_control->client_state; > uint64_t avg_enc_size = 0; > @@ -1289,7 +1289,7 @@ static void > mjpeg_encoder_client_stream_report(VideoEncoder *video_encoder, > > static void mjpeg_encoder_notify_server_frame_drop(VideoEncoder > *video_encoder) > { > - MJpegEncoder *encoder = (MJpegEncoder*)video_encoder; > + MJpegEncoder *encoder = SPICE_CONTAINEROF(video_encoder, MJpegEncoder, > base); > encoder->rate_control.server_state.num_frames_dropped++; > mjpeg_encoder_process_server_drops(encoder); > } > @@ -1328,14 +1328,14 @@ static void > mjpeg_encoder_process_server_drops(MJpegEncoder *encoder) > > static uint64_t mjpeg_encoder_get_bit_rate(VideoEncoder *video_encoder) > { > - MJpegEncoder *encoder = (MJpegEncoder*)video_encoder; > + MJpegEncoder *encoder = SPICE_CONTAINEROF(video_encoder, MJpegEncoder, > base); > return encoder->rate_control.byte_rate * 8; > } > > static void mjpeg_encoder_get_stats(VideoEncoder *video_encoder, > VideoEncoderStats *stats) > { > - MJpegEncoder *encoder = (MJpegEncoder*)video_encoder; > + MJpegEncoder *encoder = SPICE_CONTAINEROF(video_encoder, MJpegEncoder, > base); > spice_assert(encoder != NULL && stats != NULL); > stats->starting_bit_rate = encoder->starting_bit_rate; > stats->cur_bit_rate = mjpeg_encoder_get_bit_rate(video_encoder); > diff --git a/server/pixmap-cache.c b/server/pixmap-cache.c > index 489fe0bf6..49659ea41 100644 > --- a/server/pixmap-cache.c > +++ b/server/pixmap-cache.c > @@ -45,7 +45,7 @@ void pixmap_cache_clear(PixmapCache *cache) > } > > SPICE_VERIFY(SPICE_OFFSETOF(NewCacheItem, lru_link) == 0); > - while ((item = (NewCacheItem *)ring_get_head(&cache->lru))) { > + while ((item = SPICE_CONTAINEROF(ring_get_head(&cache->lru), > NewCacheItem, lru_link))) { > ring_remove(&item->lru_link); > g_free(item); > } _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel