[libvirt] [PATCH 04/10] util: buffer: Remove struct member munging

Peter Krempa pkrempa at redhat.com
Mon Apr 1 13:04:55 UTC 2019


This was meant to stop abusing the members directly, but we don't do
this for other cases. Additionally this did not stop the test from
touching the members. Remove the header obscurization.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/util/virbuffer.c | 12 ------------
 src/util/virbuffer.h | 16 ++++++----------
 tests/virbuftest.c   |  2 +-
 3 files changed, 7 insertions(+), 23 deletions(-)

diff --git a/src/util/virbuffer.c b/src/util/virbuffer.c
index 12bdd13d39..8bb9c8e1fa 100644
--- a/src/util/virbuffer.c
+++ b/src/util/virbuffer.c
@@ -23,24 +23,12 @@
 #include <stdarg.h>
 #include "c-ctype.h"

-#define __VIR_BUFFER_C__
-
 #include "virbuffer.h"
 #include "virerror.h"
 #include "virstring.h"

 #define VIR_FROM_THIS VIR_FROM_NONE

-/* If adding more fields, ensure to edit buf.h to match
-   the number of fields */
-struct _virBuffer {
-    unsigned int size;
-    unsigned int use;
-    unsigned int error; /* errno value, or -1 for usage error */
-    int indent;
-    char *content;
-};
-
 /**
  * virBufferFail
  * @buf: the buffer
diff --git a/src/util/virbuffer.h b/src/util/virbuffer.h
index b399c90154..16cd8515d6 100644
--- a/src/util/virbuffer.h
+++ b/src/util/virbuffer.h
@@ -35,19 +35,15 @@
 typedef struct _virBuffer virBuffer;
 typedef virBuffer *virBufferPtr;

-# ifndef __VIR_BUFFER_C__
-#  define VIR_BUFFER_INITIALIZER { 0, 0, 0, 0, NULL }
+# define VIR_BUFFER_INITIALIZER { 0, 0, 0, 0, NULL }

-/* This struct must be kept in sync with the real struct
-   in the buf.c impl file */
 struct _virBuffer {
-    unsigned int a;
-    unsigned int b;
-    unsigned int c;
-    int d;
-    char *e;
+    unsigned int size;
+    unsigned int use;
+    unsigned int error; /* errno value, or -1 for usage error */
+    int indent;
+    char *content;
 };
-# endif

 const char *virBufferCurrentContent(virBufferPtr buf);
 char *virBufferContentAndReset(virBufferPtr buf);
diff --git a/tests/virbuftest.c b/tests/virbuftest.c
index 34f02b1281..b608da94d4 100644
--- a/tests/virbuftest.c
+++ b/tests/virbuftest.c
@@ -29,7 +29,7 @@ static int testBufInfiniteLoop(const void *data)
      * which was the case after the above addchar at the time of the bug.
      * This test is a bit fragile, since it relies on virBuffer internals.
      */
-    if (virAsprintf(&addstr, "%*s", buf->a - buf->b - 1, "a") < 0)
+    if (virAsprintf(&addstr, "%*s", buf->size - buf->use - 1, "a") < 0)
         goto out;

     if (info->doEscape)
-- 
2.20.1




More information about the libvir-list mailing list