diff mbox series

[v3,10/27] hw/dma/pl330: Use qemu_hexdump_line to avoid sprintf

Message ID 20240412073346.458116-11-richard.henderson@linaro.org
State Superseded
Headers show
Series misc: Replace sprintf | expand

Commit Message

Richard Henderson April 12, 2024, 7:33 a.m. UTC
From: Philippe Mathieu-Daudé <philmd@linaro.org>

sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1.
Using qemu_hexdump_line both fixes the deprecation warning and
simplifies the code base.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 hw/dma/pl330.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

Comments

Pierrick Bouvier June 3, 2024, 6:59 p.m. UTC | #1
On 4/12/24 00:33, Richard Henderson wrote:
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> 
> sprintf() is deprecated on Darwin since macOS 13.0 / XCode 14.1.
> Using qemu_hexdump_line both fixes the deprecation warning and
> simplifies the code base.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   hw/dma/pl330.c | 23 ++++++++---------------
>   1 file changed, 8 insertions(+), 15 deletions(-)
> 
> diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c
> index 70a502d245..5f89295af3 100644
> --- a/hw/dma/pl330.c
> +++ b/hw/dma/pl330.c
> @@ -15,6 +15,7 @@
>    */
>   
>   #include "qemu/osdep.h"
> +#include "qemu/cutils.h"
>   #include "hw/irq.h"
>   #include "hw/qdev-properties.h"
>   #include "hw/sysbus.h"
> @@ -317,22 +318,14 @@ typedef struct PL330InsnDesc {
>   
>   static void pl330_hexdump(uint8_t *buf, size_t size)
>   {
> -    unsigned int b, i, len;
> -    char tmpbuf[80];
> +    g_autoptr(GString) str = g_string_sized_new(64);
> +    size_t b, len;
>   
> -    for (b = 0; b < size; b += 16) {
> -        len = size - b;
> -        if (len > 16) {
> -            len = 16;
> -        }
> -        tmpbuf[0] = '\0';
> -        for (i = 0; i < len; i++) {
> -            if ((i % 4) == 0) {
> -                strcat(tmpbuf, " ");
> -            }
> -            sprintf(tmpbuf + strlen(tmpbuf), " %02x", buf[b + i]);
> -        }
> -        trace_pl330_hexdump(b, tmpbuf);
> +    for (b = 0; b < size; b += len) {
> +        len = MIN(16, size - b);
> +        g_string_truncate(str, 0);
> +        qemu_hexdump_line(str, buf + b, len, 1, 4);
> +        trace_pl330_hexdump(b, str->str);
>       }
>   }
>   

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
diff mbox series

Patch

diff --git a/hw/dma/pl330.c b/hw/dma/pl330.c
index 70a502d245..5f89295af3 100644
--- a/hw/dma/pl330.c
+++ b/hw/dma/pl330.c
@@ -15,6 +15,7 @@ 
  */
 
 #include "qemu/osdep.h"
+#include "qemu/cutils.h"
 #include "hw/irq.h"
 #include "hw/qdev-properties.h"
 #include "hw/sysbus.h"
@@ -317,22 +318,14 @@  typedef struct PL330InsnDesc {
 
 static void pl330_hexdump(uint8_t *buf, size_t size)
 {
-    unsigned int b, i, len;
-    char tmpbuf[80];
+    g_autoptr(GString) str = g_string_sized_new(64);
+    size_t b, len;
 
-    for (b = 0; b < size; b += 16) {
-        len = size - b;
-        if (len > 16) {
-            len = 16;
-        }
-        tmpbuf[0] = '\0';
-        for (i = 0; i < len; i++) {
-            if ((i % 4) == 0) {
-                strcat(tmpbuf, " ");
-            }
-            sprintf(tmpbuf + strlen(tmpbuf), " %02x", buf[b + i]);
-        }
-        trace_pl330_hexdump(b, tmpbuf);
+    for (b = 0; b < size; b += len) {
+        len = MIN(16, size - b);
+        g_string_truncate(str, 0);
+        qemu_hexdump_line(str, buf + b, len, 1, 4);
+        trace_pl330_hexdump(b, str->str);
     }
 }