[libvirt] [PATCH 03/13] vbox: Rewrite vboxConnectNumOfNetworks

Michal Privoznik mprivozn at redhat.com
Wed Aug 20 16:20:49 UTC 2014


On 20.08.2014 02:17, Taowei wrote:
> ---
>   src/vbox/vbox_common.c        |   46 +++++++++++++++++++++++++++++
>   src/vbox/vbox_common.h        |   15 ++++++++++
>   src/vbox/vbox_tmpl.c          |   65 ++++++++++++++++++++---------------------
>   src/vbox/vbox_uniformed_api.h |   10 +++++++
>   4 files changed, 102 insertions(+), 34 deletions(-)
>
> diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
> index 4f11b7d..7aeb3b9 100644
> --- a/src/vbox/vbox_common.c
> +++ b/src/vbox/vbox_common.c
> @@ -104,6 +104,17 @@ type ret = value;\
>   if (!data->vboxObj) {\
>       return ret;\
>   }
> +#define VBOX_OBJECT_HOST_CHECK(conn, type, value) \
> +vboxGlobalData *data = conn->privateData;\
> +type ret = value;\
> +IHost *host = NULL;\
> +if (!data->vboxObj) {\
> +    return ret;\
> +}\

This is rather unusual macro. I'd expect any CHECK macro just to check 
if given condition is true. Of course for that purpose it can declare 
local variables, but they had to be disclosed in do { } while(0) block 
to prevent namespace pollution.

I know you're just copying preexisting code. But the code we currently 
have is wrong in many ways. So I guess we can fix this now. I'd just 
drop the macros for good. I don't find them useful anyway.

Michal




More information about the libvir-list mailing list