[Spice-devel] [PATCH spice-server 1/2] Change ENABLE_EXTRA_CHECKS statements to #ifdef
Eduardo Lima (Etrunko)
etrunko at redhat.com
Thu Mar 15 17:58:39 UTC 2018
On 15/03/18 08:19, Uri Lublin wrote:
> On 03/13/2018 03:37 PM, Eduardo Lima (Etrunko) wrote:
>> On 13/03/18 04:21, Frediano Ziglio wrote:
>>>>
>>>> This patch makes it clear that this is a configure switch and not a
>>>> variable defined somewhere else in the code.
>>>>
>>>
>>> The code is intended that way to make the compiler always parse
>>> these parts. Note that that define is always defined so your code
>>> is not doing what you are intending.
>>
>> I have sent this patch by mistake, but anyway, the fact of it always
>> being defined is true with autotools, but it is not with meson.
>
> So with meson it's either 1 or undefined ?
Well, sort of, this can worked around of course, to have it defined to
either 1 or 0.
>
> Note that in this case the current code would fail to build
> when ENABLE_EXTRA_CHECKS is undefined.
>
That's exactly what happened, I got a build failure and then I started
to think of a better solution, which I proposed as a global static variable.
>> Do you think it would make sense to have this patch or is it better to
>> keep as is? If the latter, I think it would be better to keep a static
>> variable and change its value according to the define.
>
> This patch makes sense to me.
>
> Perhaps replace the #ifdef with
> #if defined(ENABLE_EXTRA_CHECKS) && ENABLE_EXTRA_CHECKS
>
> Uri.
>
>>
>> Regards, Eduardo.
>>
>>>
>>> Frediano
>>>
>>>> Signed-off-by: Eduardo Lima (Etrunko) <etrunko at redhat.com>
>>>> ---
>>>> server/display-channel.c | 4 +++-
>>>> server/reds.c | 6 +++---
>>>> server/stream-device.c | 22 +++++++++++-----------
>>>> 3 files changed, 17 insertions(+), 15 deletions(-)
>>>>
>>>> diff --git a/server/display-channel.c b/server/display-channel.c
>>>> index 6dc10ee7..ae2af71d 100644
>>>> --- a/server/display-channel.c
>>>> +++ b/server/display-channel.c
>>>> @@ -89,7 +89,8 @@ display_channel_finalize(GObject *object)
>>>> display_channel_destroy_surfaces(self);
>>>> image_cache_reset(&self->priv->image_cache);
>>>> - if (ENABLE_EXTRA_CHECKS) {
>>>> +#ifdef ENABLE_EXTRA_CHECKS
>>>> + {
>>>> unsigned int count;
>>>> _Drawable *drawable;
>>>> VideoStream *stream;
>>>> @@ -111,6 +112,7 @@ display_channel_finalize(GObject *object)
>>>>
>>>> spice_assert(self->priv->surfaces[count].context.canvas ==
>>>> NULL);
>>>> }
>>>> }
>>>> +#endif
>>>> monitors_config_unref(self->priv->monitors_config);
>>>> g_array_unref(self->priv->video_codecs);
>>>> diff --git a/server/reds.c b/server/reds.c
>>>> index 73c9ec20..ca6fd44a 100644
>>>> --- a/server/reds.c
>>>> +++ b/server/reds.c
>>>> @@ -4434,9 +4434,9 @@ red_char_device_vdi_port_finalize(GObject
>>>> *object)
>>>> dev->priv->current_read_buf = NULL;
>>>> }
>>>> g_free(dev->priv->mig_data);
>>>> - if (ENABLE_EXTRA_CHECKS) {
>>>> - spice_assert(dev->priv->num_read_buf == 0);
>>>> - }
>>>> +#ifdef ENABLE_EXTRA_CHECKS
>>>> + spice_assert(dev->priv->num_read_buf == 0);
>>>> +#endif
>>>>
>>>> G_OBJECT_CLASS(red_char_device_vdi_port_parent_class)->finalize(object);
>>>>
>>>> }
>>>> diff --git a/server/stream-device.c b/server/stream-device.c
>>>> index 6cf29d37..15048b82 100644
>>>> --- a/server/stream-device.c
>>>> +++ b/server/stream-device.c
>>>> @@ -197,9 +197,9 @@ handle_msg_invalid(StreamDevice *dev,
>>>> SpiceCharDeviceInstance *sin, const char *
>>>> {
>>>> static const char default_error_msg[] = "Protocol error";
>>>> - if (ENABLE_EXTRA_CHECKS) {
>>>> - spice_assert(dev->hdr_pos >= sizeof(StreamDevHeader));
>>>> - }
>>>> +#ifdef ENABLE_EXTRA_CHECKS
>>>> + spice_assert(dev->hdr_pos >= sizeof(StreamDevHeader));
>>>> +#endif
>>>> if (!error_msg) {
>>>> error_msg = default_error_msg;
>>>> @@ -234,10 +234,10 @@ handle_msg_format(StreamDevice *dev,
>>>> SpiceCharDeviceInstance *sin)
>>>> {
>>>> SpiceCharDeviceInterface *sif =
>>>> spice_char_device_get_interface(sin);
>>>> - if (ENABLE_EXTRA_CHECKS) {
>>>> - spice_assert(dev->hdr_pos >= sizeof(StreamDevHeader));
>>>> - spice_assert(dev->hdr.type == STREAM_TYPE_FORMAT);
>>>> - }
>>>> +#ifdef ENABLE_EXTRA_CHECKS
>>>> + spice_assert(dev->hdr_pos >= sizeof(StreamDevHeader));
>>>> + spice_assert(dev->hdr.type == STREAM_TYPE_FORMAT);
>>>> +#endif
>>>> int n = sif->read(sin, dev->msg->buf + dev->msg_pos,
>>>> sizeof(StreamMsgFormat) - dev->msg_pos);
>>>> if (n < 0) {
>>>> @@ -262,10 +262,10 @@ handle_msg_data(StreamDevice *dev,
>>>> SpiceCharDeviceInstance *sin)
>>>> SpiceCharDeviceInterface *sif =
>>>> spice_char_device_get_interface(sin);
>>>> int n;
>>>> - if (ENABLE_EXTRA_CHECKS) {
>>>> - spice_assert(dev->hdr_pos >= sizeof(StreamDevHeader));
>>>> - spice_assert(dev->hdr.type == STREAM_TYPE_DATA);
>>>> - }
>>>> +#ifdef ENABLE_EXTRA_CHECKS
>>>> + spice_assert(dev->hdr_pos >= sizeof(StreamDevHeader));
>>>> + spice_assert(dev->hdr.type == STREAM_TYPE_DATA);
>>>> +#endif
>>>> while (1) {
>>>> uint8_t buf[16 * 1024];
>>
>>
>
--
Eduardo de Barros Lima (Etrunko)
Software Engineer - RedHat
etrunko at redhat.com
More information about the Spice-devel
mailing list