summary refs log tree commit diff stats
path: root/qapi/qapi-clone-visitor.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2020-07-10 14:41:23 +0100
committerPeter Maydell <peter.maydell@linaro.org>2020-07-10 14:41:23 +0100
commitf2a1cf9180f63e88bb38ff21c169da97c3f2bad5 (patch)
treeb7582f17ac7fb572a23b02bfdac638d19d780d48 /qapi/qapi-clone-visitor.c
parentb6d7e9b66f59ca6ebc6e9b830cd5e7bf849d31cf (diff)
parent1de7096d8378a57e2d75d9cacc9a119e7e41640d (diff)
downloadfocaccia-qemu-f2a1cf9180f63e88bb38ff21c169da97c3f2bad5.tar.gz
focaccia-qemu-f2a1cf9180f63e88bb38ff21c169da97c3f2bad5.zip
Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2020-07-07-v2' into staging
Error reporting patches patches for 2020-07-07

# gpg: Signature made Fri 10 Jul 2020 14:24:42 BST
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "armbru@redhat.com"
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full]
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-error-2020-07-07-v2: (53 commits)
  xen: Use ERRP_GUARD()
  nbd: Use ERRP_GUARD()
  virtio-9p: Use ERRP_GUARD()
  fw_cfg: Use ERRP_GUARD()
  pflash: Use ERRP_GUARD()
  sd: Use ERRP_GUARD()
  scripts: Coccinelle script to use ERRP_GUARD()
  error: New macro ERRP_GUARD()
  hmp: Ignore Error objects where the return value suffices
  qdev: Ignore Error objects where the return value suffices
  qemu-img: Ignore Error objects where the return value suffices
  error: Avoid error_propagate() after migrate_add_blocker()
  qapi: Purge error_propagate() from QAPI core
  qapi: Smooth visitor error checking in generated code
  qapi: Smooth another visitor error checking pattern
  block/parallels: Simplify parallels_open() after previous commit
  error: Reduce unnecessary error propagation
  error: Eliminate error_propagate() manually
  error: Eliminate error_propagate() with Coccinelle, part 2
  error: Eliminate error_propagate() with Coccinelle, part 1
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'qapi/qapi-clone-visitor.c')
-rw-r--r--qapi/qapi-clone-visitor.c45
1 files changed, 26 insertions, 19 deletions
diff --git a/qapi/qapi-clone-visitor.c b/qapi/qapi-clone-visitor.c
index daab6819b4..c45c5caa3b 100644
--- a/qapi/qapi-clone-visitor.c
+++ b/qapi/qapi-clone-visitor.c
@@ -24,7 +24,7 @@ static QapiCloneVisitor *to_qcv(Visitor *v)
     return container_of(v, QapiCloneVisitor, visitor);
 }
 
-static void qapi_clone_start_struct(Visitor *v, const char *name, void **obj,
+static bool qapi_clone_start_struct(Visitor *v, const char *name, void **obj,
                                     size_t size, Error **errp)
 {
     QapiCloneVisitor *qcv = to_qcv(v);
@@ -34,11 +34,12 @@ static void qapi_clone_start_struct(Visitor *v, const char *name, void **obj,
         /* Only possible when visiting an alternate's object
          * branch. Nothing further to do here, since the earlier
          * visit_start_alternate() already copied memory. */
-        return;
+        return true;
     }
 
     *obj = g_memdup(*obj, size);
     qcv->depth++;
+    return true;
 }
 
 static void qapi_clone_end(Visitor *v, void **obj)
@@ -51,11 +52,11 @@ static void qapi_clone_end(Visitor *v, void **obj)
     }
 }
 
-static void qapi_clone_start_list(Visitor *v, const char *name,
+static bool qapi_clone_start_list(Visitor *v, const char *name,
                                   GenericList **listp, size_t size,
                                   Error **errp)
 {
-    qapi_clone_start_struct(v, name, (void **)listp, size, errp);
+    return qapi_clone_start_struct(v, name, (void **)listp, size, errp);
 }
 
 static GenericList *qapi_clone_next_list(Visitor *v, GenericList *tail,
@@ -69,42 +70,45 @@ static GenericList *qapi_clone_next_list(Visitor *v, GenericList *tail,
     return tail->next;
 }
 
-static void qapi_clone_start_alternate(Visitor *v, const char *name,
+static bool qapi_clone_start_alternate(Visitor *v, const char *name,
                                        GenericAlternate **obj, size_t size,
                                        Error **errp)
 {
-    qapi_clone_start_struct(v, name, (void **)obj, size, errp);
+    return qapi_clone_start_struct(v, name, (void **)obj, size, errp);
 }
 
-static void qapi_clone_type_int64(Visitor *v, const char *name, int64_t *obj,
-                                   Error **errp)
+static bool qapi_clone_type_int64(Visitor *v, const char *name, int64_t *obj,
+                                  Error **errp)
 {
     QapiCloneVisitor *qcv = to_qcv(v);
 
     assert(qcv->depth);
     /* Value was already cloned by g_memdup() */
+    return true;
 }
 
-static void qapi_clone_type_uint64(Visitor *v, const char *name,
-                                    uint64_t *obj, Error **errp)
+static bool qapi_clone_type_uint64(Visitor *v, const char *name,
+                                   uint64_t *obj, Error **errp)
 {
     QapiCloneVisitor *qcv = to_qcv(v);
 
     assert(qcv->depth);
     /* Value was already cloned by g_memdup() */
+    return true;
 }
 
-static void qapi_clone_type_bool(Visitor *v, const char *name, bool *obj,
-                                  Error **errp)
+static bool qapi_clone_type_bool(Visitor *v, const char *name, bool *obj,
+                                 Error **errp)
 {
     QapiCloneVisitor *qcv = to_qcv(v);
 
     assert(qcv->depth);
     /* Value was already cloned by g_memdup() */
+    return true;
 }
 
-static void qapi_clone_type_str(Visitor *v, const char *name, char **obj,
-                                 Error **errp)
+static bool qapi_clone_type_str(Visitor *v, const char *name, char **obj,
+                                Error **errp)
 {
     QapiCloneVisitor *qcv = to_qcv(v);
 
@@ -117,24 +121,27 @@ static void qapi_clone_type_str(Visitor *v, const char *name, char **obj,
      * string is intended.
      */
     *obj = g_strdup(*obj ?: "");
+    return true;
 }
 
-static void qapi_clone_type_number(Visitor *v, const char *name, double *obj,
-                                    Error **errp)
+static bool qapi_clone_type_number(Visitor *v, const char *name, double *obj,
+                                   Error **errp)
 {
     QapiCloneVisitor *qcv = to_qcv(v);
 
     assert(qcv->depth);
     /* Value was already cloned by g_memdup() */
+    return true;
 }
 
-static void qapi_clone_type_null(Visitor *v, const char *name, QNull **obj,
+static bool qapi_clone_type_null(Visitor *v, const char *name, QNull **obj,
                                  Error **errp)
 {
     QapiCloneVisitor *qcv = to_qcv(v);
 
     assert(qcv->depth);
     *obj = qnull();
+    return true;
 }
 
 static void qapi_clone_free(Visitor *v)
@@ -167,7 +174,7 @@ static Visitor *qapi_clone_visitor_new(void)
     return &v->visitor;
 }
 
-void *qapi_clone(const void *src, void (*visit_type)(Visitor *, const char *,
+void *qapi_clone(const void *src, bool (*visit_type)(Visitor *, const char *,
                                                      void **, Error **))
 {
     Visitor *v;
@@ -184,7 +191,7 @@ void *qapi_clone(const void *src, void (*visit_type)(Visitor *, const char *,
 }
 
 void qapi_clone_members(void *dst, const void *src, size_t sz,
-                        void (*visit_type_members)(Visitor *, void *,
+                        bool (*visit_type_members)(Visitor *, void *,
                                                    Error **))
 {
     Visitor *v;