All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>
Subject: [PATCH-for-5.2 3/5] qom: Use g_autofree in ObjectPropertyGet functions
Date: Wed, 15 Jul 2020 19:58:33 +0200	[thread overview]
Message-ID: <20200715175835.27744-4-philmd@redhat.com> (raw)
In-Reply-To: <20200715175835.27744-1-philmd@redhat.com>

By using g_autofree we make it easier to have ObjectPropertyGet
methods return a value (see next commit).

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 backends/tpm/tpm_util.c          |  3 +--
 hw/block/xen-block.c             |  3 +--
 hw/core/qdev-properties-system.c | 13 +++++--------
 hw/mem/nvdimm.c                  |  3 +--
 hw/ppc/spapr_caps.c              |  3 +--
 qom/object.c                     |  6 ++----
 6 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c
index b58d298c1a..235b006498 100644
--- a/backends/tpm/tpm_util.c
+++ b/backends/tpm/tpm_util.c
@@ -37,11 +37,10 @@ static void get_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
 {
     DeviceState *dev = DEVICE(obj);
     TPMBackend **be = qdev_get_prop_ptr(dev, opaque);
-    char *p;
+    g_autofree char *p;
 
     p = g_strdup(*be ? (*be)->id : "");
     visit_type_str(v, name, &p, errp);
-    g_free(p);
 }
 
 static void set_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index 8a7a3f5452..8c23b895d9 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -338,7 +338,7 @@ static void xen_block_get_vdev(Object *obj, Visitor *v, const char *name,
     DeviceState *dev = DEVICE(obj);
     Property *prop = opaque;
     XenBlockVdev *vdev = qdev_get_prop_ptr(dev, prop);
-    char *str;
+    g_autofree char *str = NULL;
 
     switch (vdev->type) {
     case XEN_BLOCK_VDEV_TYPE_DP:
@@ -366,7 +366,6 @@ static void xen_block_get_vdev(Object *obj, Visitor *v, const char *name,
     }
 
     visit_type_str(v, name, &str, errp);
-    g_free(str);
 }
 
 static int vbd_name_to_disk(const char *name, const char **endp,
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 3e4f16fc21..28682eda31 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -56,7 +56,7 @@ static void get_drive(Object *obj, Visitor *v, const char *name, void *opaque,
     Property *prop = opaque;
     void **ptr = qdev_get_prop_ptr(dev, prop);
     const char *value;
-    char *p;
+    g_autofree char *p;
 
     if (*ptr) {
         value = blk_name(*ptr);
@@ -72,7 +72,6 @@ static void get_drive(Object *obj, Visitor *v, const char *name, void *opaque,
 
     p = g_strdup(value);
     visit_type_str(v, name, &p, errp);
-    g_free(p);
 }
 
 static void set_drive_helper(Object *obj, Visitor *v, const char *name,
@@ -213,11 +212,10 @@ static void get_chr(Object *obj, Visitor *v, const char *name, void *opaque,
 {
     DeviceState *dev = DEVICE(obj);
     CharBackend *be = qdev_get_prop_ptr(dev, opaque);
-    char *p;
+    g_autofree char *p;
 
     p = g_strdup(be->chr && be->chr->label ? be->chr->label : "");
     visit_type_str(v, name, &p, errp);
-    g_free(p);
 }
 
 static void set_chr(Object *obj, Visitor *v, const char *name, void *opaque,
@@ -287,10 +285,10 @@ static void get_netdev(Object *obj, Visitor *v, const char *name,
     DeviceState *dev = DEVICE(obj);
     Property *prop = opaque;
     NICPeers *peers_ptr = qdev_get_prop_ptr(dev, prop);
-    char *p = g_strdup(peers_ptr->ncs[0] ? peers_ptr->ncs[0]->name : "");
+    g_autofree char *p;
 
+    p = g_strdup(peers_ptr->ncs[0] ? peers_ptr->ncs[0]->name : "");
     visit_type_str(v, name, &p, errp);
-    g_free(p);
 }
 
 static void set_netdev(Object *obj, Visitor *v, const char *name,
@@ -367,10 +365,9 @@ static void get_audiodev(Object *obj, Visitor *v, const char* name,
     DeviceState *dev = DEVICE(obj);
     Property *prop = opaque;
     QEMUSoundCard *card = qdev_get_prop_ptr(dev, prop);
-    char *p = g_strdup(audio_get_id(card));
+    g_autofree char *p = g_strdup(audio_get_id(card));
 
     visit_type_str(v, name, &p, errp);
-    g_free(p);
 }
 
 static void set_audiodev(Object *obj, Visitor *v, const char* name,
diff --git a/hw/mem/nvdimm.c b/hw/mem/nvdimm.c
index d0d6e553cf..b55de7dbe1 100644
--- a/hw/mem/nvdimm.c
+++ b/hw/mem/nvdimm.c
@@ -69,12 +69,11 @@ static void nvdimm_get_uuid(Object *obj, Visitor *v, const char *name,
                                   void *opaque, Error **errp)
 {
     NVDIMMDevice *nvdimm = NVDIMM(obj);
-    char *value = NULL;
+    g_autofree char *value = NULL;
 
     value = qemu_uuid_unparse_strdup(&nvdimm->uuid);
 
     visit_type_str(v, name, &value, errp);
-    g_free(value);
 }
 
 
diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
index 7558db0c8b..cbc09b24b6 100644
--- a/hw/ppc/spapr_caps.c
+++ b/hw/ppc/spapr_caps.c
@@ -101,7 +101,7 @@ static void  spapr_cap_get_string(Object *obj, Visitor *v, const char *name,
 {
     SpaprCapabilityInfo *cap = opaque;
     SpaprMachineState *spapr = SPAPR_MACHINE(obj);
-    char *val = NULL;
+    g_autofree char *val = NULL;
     uint8_t value = spapr_get_cap(spapr, cap->index);
 
     if (value >= cap->possible->num) {
@@ -112,7 +112,6 @@ static void  spapr_cap_get_string(Object *obj, Visitor *v, const char *name,
     val = g_strdup(cap->possible->vals[value]);
 
     visit_type_str(v, name, &val, errp);
-    g_free(val);
 }
 
 static void spapr_cap_set_string(Object *obj, Visitor *v, const char *name,
diff --git a/qom/object.c b/qom/object.c
index e5324f2af7..7c13117f7d 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1649,11 +1649,10 @@ static void object_get_child_property(Object *obj, Visitor *v,
                                       Error **errp)
 {
     Object *child = opaque;
-    char *path;
+    g_autofree char *path;
 
     path = object_get_canonical_path(child);
     visit_type_str(v, name, &path, errp);
-    g_free(path);
 }
 
 static Object *object_resolve_child_property(Object *parent, void *opaque,
@@ -2099,7 +2098,7 @@ static void property_get_str(Object *obj, Visitor *v, const char *name,
                              void *opaque, Error **errp)
 {
     StringProperty *prop = opaque;
-    char *value;
+    g_autofree char *value = NULL;
     Error *err = NULL;
 
     value = prop->get(obj, &err);
@@ -2109,7 +2108,6 @@ static void property_get_str(Object *obj, Visitor *v, const char *name,
     }
 
     visit_type_str(v, name, &value, errp);
-    g_free(value);
 }
 
 static void property_set_str(Object *obj, Visitor *v, const char *name,
-- 
2.21.3



  parent reply	other threads:[~2020-07-15 18:03 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-15 17:58 [RFC PATCH-for-5.2 0/5] qom: Let ObjectPropertyGet functions return a boolean value Philippe Mathieu-Daudé
2020-07-15 17:58 ` [PATCH-for-5.2 1/5] hw/core/qdev-properties: Simplify get_reserved_region() Philippe Mathieu-Daudé
2020-07-16  8:29   ` Markus Armbruster
2020-07-16  8:38     ` Philippe Mathieu-Daudé
2020-07-16  9:36       ` Markus Armbruster
2020-07-15 17:58 ` [RFC PATCH-for-5.2 2/5] qom: Split ObjectPropertyAccessor as ObjectProperty[Get/Set] Philippe Mathieu-Daudé
2020-07-15 17:58 ` Philippe Mathieu-Daudé [this message]
2020-07-15 17:58 ` [RFC PATCH-for-5.2 4/5] qom: Let ObjectPropertyGet functions return a boolean value Philippe Mathieu-Daudé
2020-07-16  9:07   ` Markus Armbruster
2020-09-07 14:26     ` Markus Armbruster
2020-09-07 14:36       ` Peter Maydell
2020-09-07 14:36       ` Philippe Mathieu-Daudé
2020-07-15 17:58 ` [RFC PATCH-for-5.2 5/5] hw/virtio: Simplify virtio_mem_set_requested_size() Philippe Mathieu-Daudé
2020-07-16  9:14   ` Markus Armbruster
2020-07-16  8:25 ` [RFC PATCH-for-5.2 0/5] qom: Let ObjectPropertyGet functions return a boolean value Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200715175835.27744-4-philmd@redhat.com \
    --to=philmd@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.