]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
qapi/commands: refactor error handling code
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Wed, 26 Jan 2022 16:11:25 +0000 (17:11 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Thu, 27 Jan 2022 10:25:09 +0000 (11:25 +0100)
Move error_propagate() to if (err) and make "if (err)" block mandatory.
This is to simplify further commit, which will bring trace events
generation for QMP commands.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20220126161130.3240892-3-vsementsov@virtuozzo.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
docs/devel/qapi-code-gen.rst
scripts/qapi/commands.py

index a3b54730894c80aa8fb9ae80e78c2fd6b5779876..feafed79b520a458924fb3138a365dde1a52fa14 100644 (file)
@@ -1690,8 +1690,8 @@ Example::
         }
 
         retval = qmp_my_command(arg.arg1, &err);
-        error_propagate(errp, err);
         if (err) {
+            error_propagate(errp, err);
             goto out;
         }
 
index 21001bbd6b84151af4d9aa64939eb80162f96710..17e5ed2414803ab70821c94c8e627f47dc629dc9 100644 (file)
@@ -74,14 +74,18 @@ def gen_call(name: str,
     ret = mcgen('''
 
     %(lhs)sqmp_%(c_name)s(%(args)s&err);
-    error_propagate(errp, err);
 ''',
                 c_name=c_name(name), args=argstr, lhs=lhs)
-    if ret_type:
-        ret += mcgen('''
+
+    ret += mcgen('''
     if (err) {
+        error_propagate(errp, err);
         goto out;
     }
+''')
+
+    if ret_type:
+        ret += mcgen('''
 
     qmp_marshal_output_%(c_name)s(retval, ret, errp);
 ''',