[Libvirt-cim] [PATCH 1 of 2] (#4) made the graphic structure as union

Eduardo Lima (Etrunko) eblima at linux.vnet.ibm.com
Thu Aug 11 17:43:58 UTC 2011


On 07/29/2011 04:05 AM, Wayne Xia wrote:
[snip]
> diff -r 0f42cab9c45c -r 640ea61807cf libxkutil/device_parsing.c
> --- a/libxkutil/device_parsing.c	Mon Jul 25 13:14:22 2011 -0700
> +++ b/libxkutil/device_parsing.c	Mon Jul 25 19:39:08 2011 +0800
> @@ -88,13 +88,31 @@
>           free(dev->path);
>   }
>
> +static void cleanup_vnc_device(struct graphics_device *dev)
> +{
> +        free(dev->type);
> +        free(dev->dev.vnc.port);
> +        free(dev->dev.vnc.host);
> +        free(dev->dev.vnc.keymap);
> +        free(dev->dev.vnc.passwd);
> +}
> +
> +static void cleanup_sdl_device(struct graphics_device *dev)
> +{
> +        free(dev->type);
> +        free(dev->dev.sdl.display);
> +        free(dev->dev.sdl.xauth);
> +        free(dev->dev.sdl.fullscreen);
> +}
> +
>   static void cleanup_graphics_device(struct graphics_device *dev)
>   {
> -        free(dev->type);
> -        free(dev->port);
> -        free(dev->host);
> -        free(dev->keymap);
> -        free(dev->passwd);
> +        if (STREQC(dev->type, "sdl")) {
> +            cleanup_sdl_device(dev);
> +        }
> +        else {
> +            cleanup_vnc_device(dev);
> +        }
>   }
>

As dev->type is a common field, it should be on the cleanup_graphics 
function, while the cleanup_sdl and cleanup_vnc would handle the 
specifics thus avoiding code duplicity.

> diff -r 0f42cab9c45c -r 640ea61807cf libxkutil/device_parsing.h
> --- a/libxkutil/device_parsing.h	Mon Jul 25 13:14:22 2011 -0700
> +++ b/libxkutil/device_parsing.h	Mon Jul 25 19:39:08 2011 +0800
> @@ -84,14 +84,28 @@
>           char *path;
>   };
>
> -struct graphics_device {
> -        char *type;
> +//vnc_device must be larger or equal than sdl_device

With the specific cleanup functions this comment is not necessary.

ACK, I think those small bits can be fixed before pushing.

-- 
Eduardo de Barros Lima
Software Engineer, Open Virtualization
Linux Technology Center - IBM/Brazil
eblima at br.ibm.com




More information about the Libvirt-cim mailing list