[libvirt] [PATCH 2/2] vbox: Adjust the UTF FREE macros

Eric Blake eblake at redhat.com
Fri Jan 25 23:16:29 UTC 2013


On 01/23/2013 05:34 PM, John Ferlan wrote:
> Adjust the macros to free memory allocated during various calls to
> perform the check if parameter is NULL prior to really freeing and to
> set the pointer to NULL after done freeing.
> ---
>  src/vbox/vbox_tmpl.c | 76 +++++++++++++++++++++++++---------------------------
>  1 file changed, 37 insertions(+), 39 deletions(-)
> 

> +#define VBOX_UTF16_FREE(arg)                                                  \
> +    do {                                                                      \
> +        if (arg) {                                                            \
> +             data->pFuncs->pfnUtf16Free((arg));                               \

Unneeded set of () here, but it doesn't hurt anything.  Also,
indentation is off.

Modifying cfg.mk will make it easy to enforce that we don't re-introduce
the problem.  ACK with this squashed in, so I pushed.

diff --git i/cfg.mk w/cfg.mk
index a687eb9..2dfde01 100644
--- i/cfg.mk
+++ w/cfg.mk
@@ -93,6 +93,9 @@ VC_LIST_ALWAYS_EXCLUDE_REGEX = \

 # Functions like free() that are no-ops on NULL arguments.
 useless_free_options =				\
+  --name=VBOX_UTF16_FREE			\
+  --name=VBOX_UTF8_FREE				\
+  --name=VBOX_COM_UNALLOC_MEM			\
   --name=VIR_FREE				\
   --name=qemuCapsFree				\
   --name=qemuMigrationCookieFree                \
diff --git i/src/vbox/vbox_tmpl.c w/src/vbox/vbox_tmpl.c
index 86e08da..0a164dc 100644
--- i/src/vbox/vbox_tmpl.c
+++ w/src/vbox/vbox_tmpl.c
@@ -8,7 +8,7 @@
  */

 /*
- * Copyright (C) 2010-2012 Red Hat, Inc.
+ * Copyright (C) 2010-2013 Red Hat, Inc.
  * Copyright (C) 2008-2009 Sun Microsystems, Inc.
  *
  * This file is part of a free software library; you can redistribute
@@ -80,28 +80,28 @@


 #define VIR_FROM_THIS                   VIR_FROM_VBOX
-#define VBOX_UTF16_FREE(arg)
       \
-    do {
       \
-        if (arg) {
       \
-             data->pFuncs->pfnUtf16Free((arg));
       \
-            (arg) = NULL;
       \
-        }
       \
+#define VBOX_UTF16_FREE(arg)                                            \
+    do {                                                                \
+        if (arg) {                                                      \
+            data->pFuncs->pfnUtf16Free(arg);                            \
+            (arg) = NULL;                                               \
+        }                                                               \
     } while (0)

-#define VBOX_UTF8_FREE(arg)
       \
-    do {
       \
-        if (arg) {
       \
-             data->pFuncs->pfnUtf8Free((arg));
       \
-            (arg) = NULL;
       \
-        }
       \
+#define VBOX_UTF8_FREE(arg)                                             \
+    do {                                                                \
+        if (arg) {                                                      \
+            data->pFuncs->pfnUtf8Free(arg);                             \
+            (arg) = NULL;                                               \
+        }                                                               \
     } while (0)

-#define VBOX_COM_UNALLOC_MEM(arg)
       \
-    do {
       \
-        if (arg) {
       \
-             data->pFuncs->pfnComUnallocMem((arg));
       \
-            (arg) = NULL;
       \
-        }
       \
+#define VBOX_COM_UNALLOC_MEM(arg)                                       \
+    do {                                                                \
+        if (arg) {                                                      \
+            data->pFuncs->pfnComUnallocMem(arg);                        \
+            (arg) = NULL;                                               \
+        }                                                               \
     } while (0)

 #define VBOX_UTF16_TO_UTF8(arg1, arg2)
data->pFuncs->pfnUtf16ToUtf8(arg1, arg2)


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130125/1df3d1dc/attachment-0001.sig>


More information about the libvir-list mailing list