[Spice-devel] [PATCH spice-server v2] Use verify instead of G_STATIC_ASSERT
Jonathon Jongsma
jjongsma at redhat.com
Fri Dec 1 22:40:54 UTC 2017
Seems I got behind on email and ACKed the previous version already.
Oops.
Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
On Thu, 2017-11-30 at 16:42 +0000, Frediano Ziglio wrote:
> verify guarantee that the condition is always a compile
> time constant.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/glib-compat.h | 2 +-
> server/red-parse-qxl.c | 4 ++--
> server/spice-bitmap-utils.h | 4 ++--
> server/tests/replay.c | 22 +++++++++++-----------
> server/tests/stat-test.c | 6 ++++--
> 5 files changed, 20 insertions(+), 18 deletions(-)
>
> Changes since v1:
> - compatibility with RHEL6, we need to use SPICE_VERIFY inside
> functions.
>
> diff --git a/server/glib-compat.h b/server/glib-compat.h
> index a81bf483..2444ac3b 100644
> --- a/server/glib-compat.h
> +++ b/server/glib-compat.h
> @@ -24,7 +24,7 @@
> #if !GLIB_CHECK_VERSION(2,34,0)
> #define g_clear_pointer(pp, destroy) \
> G_STMT_START
> { \
> - G_STATIC_ASSERT (sizeof *(pp) == sizeof
> (gpointer)); \
> + SPICE_VERIFY (sizeof *(pp) == sizeof
> (gpointer)); \
> /* Only one access, please
> */ \
> gpointer *_pp = (gpointer *)
> (pp); \
> gpointer
> _p; \
> diff --git a/server/red-parse-qxl.c b/server/red-parse-qxl.c
> index 9224b2c5..b4325b04 100644
> --- a/server/red-parse-qxl.c
> +++ b/server/red-parse-qxl.c
> @@ -35,7 +35,7 @@
> */
> #define MAX_DATA_CHUNK 0x7ffffffflu
>
> -G_STATIC_ASSERT(MAX_DATA_CHUNK <= G_MAXINT32);
> +verify(MAX_DATA_CHUNK <= G_MAXINT32);
>
> /* Limit number of chunks.
> * The guest can attempt to make host allocate too much memory
> @@ -350,7 +350,7 @@ static SpiceClipRects
> *red_get_clip_rects(RedMemSlotInfo *slots, int group_id,
> * by red_get_data_chunks_ptr checks.
> */
> spice_assert((uint64_t) num_rects * sizeof(QXLRect) == size);
> - G_STATIC_ASSERT(sizeof(SpiceRect) == sizeof(QXLRect));
> + SPICE_VERIFY(sizeof(SpiceRect) == sizeof(QXLRect));
> red = g_malloc(sizeof(*red) + num_rects * sizeof(SpiceRect));
> red->num_rects = num_rects;
>
> diff --git a/server/spice-bitmap-utils.h b/server/spice-bitmap-
> utils.h
> index 27077045..517ddabf 100644
> --- a/server/spice-bitmap-utils.h
> +++ b/server/spice-bitmap-utils.h
> @@ -36,7 +36,7 @@ typedef struct {
> uint8_t pad;
> } rgb32_pixel_t;
>
> -G_STATIC_ASSERT(sizeof(rgb32_pixel_t) == 4);
> +verify(sizeof(rgb32_pixel_t) == 4);
>
> typedef struct {
> uint8_t b;
> @@ -44,7 +44,7 @@ typedef struct {
> uint8_t r;
> } rgb24_pixel_t;
>
> -G_STATIC_ASSERT(sizeof(rgb24_pixel_t) == 3);
> +verify(sizeof(rgb24_pixel_t) == 3);
>
> typedef uint16_t rgb16_pixel_t;
>
> diff --git a/server/tests/replay.c b/server/tests/replay.c
> index 700a2a81..e459ca26 100644
> --- a/server/tests/replay.c
> +++ b/server/tests/replay.c
> @@ -356,17 +356,17 @@ int main(int argc, char **argv)
> "\t1=off 2=all 3=filter";
>
> /* these asserts are here to check that the documentation we
> state above is still correct */
> - G_STATIC_ASSERT(SPICE_STREAM_VIDEO_OFF == 1);
> - G_STATIC_ASSERT(SPICE_STREAM_VIDEO_ALL == 2);
> - G_STATIC_ASSERT(SPICE_STREAM_VIDEO_FILTER == 3);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_INVALID == 0);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_OFF == 1);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_AUTO_GLZ == 2);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_AUTO_LZ == 3);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_QUIC == 4);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_GLZ == 5);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_LZ == 6);
> - G_STATIC_ASSERT(SPICE_IMAGE_COMPRESSION_LZ4 == 7);
> + SPICE_VERIFY(SPICE_STREAM_VIDEO_OFF == 1);
> + SPICE_VERIFY(SPICE_STREAM_VIDEO_ALL == 2);
> + SPICE_VERIFY(SPICE_STREAM_VIDEO_FILTER == 3);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_INVALID == 0);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_OFF == 1);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_AUTO_GLZ == 2);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_AUTO_LZ == 3);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_QUIC == 4);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_GLZ == 5);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_LZ == 6);
> + SPICE_VERIFY(SPICE_IMAGE_COMPRESSION_LZ4 == 7);
>
> context = g_option_context_new("- replay spice server
> recording");
> g_option_context_add_main_entries(context, entries, NULL);
> diff --git a/server/tests/stat-test.c b/server/tests/stat-test.c
> index 7bda79ae..e4a83f4f 100644
> --- a/server/tests/stat-test.c
> +++ b/server/tests/stat-test.c
> @@ -34,6 +34,8 @@
>
> #include <unistd.h>
> #include <glib.h>
> +#include <common/macros.h>
> +
> #include "../stat.h"
>
> #ifndef TEST_NAME
> @@ -49,8 +51,8 @@ void TEST_NAME(void)
> stat_start_time_t start_time;
>
> #if !defined(COMPRESS_STAT) && !defined(RED_WORKER_STAT)
> - G_STATIC_ASSERT(sizeof(start_time) == 0);
> - G_STATIC_ASSERT(sizeof(info) == 0);
> + SPICE_VERIFY(sizeof(start_time) == 0);
> + SPICE_VERIFY(sizeof(info) == 0);
> #endif
>
> stat_init(&info, "test", CLOCK_MONOTONIC);
More information about the Spice-devel
mailing list