[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 2/7] qapi/commands: refactor error handling code
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v6 2/7] qapi/commands: refactor error handling code |
Date: |
Wed, 26 Jan 2022 17: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>
---
docs/devel/qapi-code-gen.rst | 2 +-
scripts/qapi/commands.py | 10 +++++++---
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
index a3b5473089..feafed79b5 100644
--- a/docs/devel/qapi-code-gen.rst
+++ b/docs/devel/qapi-code-gen.rst
@@ -1690,8 +1690,8 @@ Example::
}
retval = qmp_my_command(arg.arg1, &err);
- error_propagate(errp, err);
if (err) {
+ error_propagate(errp, err);
goto out;
}
diff --git a/scripts/qapi/commands.py b/scripts/qapi/commands.py
index 21001bbd6b..17e5ed2414 100644
--- a/scripts/qapi/commands.py
+++ b/scripts/qapi/commands.py
@@ -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);
''',
--
2.31.1
- [PATCH v6 0/7] trace qmp commands, Vladimir Sementsov-Ogievskiy, 2022/01/26
- [PATCH v6 1/7] qapi/gen: Add FOO.trace-events output module, Vladimir Sementsov-Ogievskiy, 2022/01/26
- [PATCH v6 2/7] qapi/commands: refactor error handling code,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v6 3/7] qapi/commands: Optionally generate trace for QMP commands, Vladimir Sementsov-Ogievskiy, 2022/01/26
- [PATCH v6 7/7] qapi: generate trace events by default, Vladimir Sementsov-Ogievskiy, 2022/01/26
- [PATCH v6 4/7] meson: generate trace events for qmp commands, Vladimir Sementsov-Ogievskiy, 2022/01/26
- [PATCH v6 5/7] docs/qapi-code-gen: update to cover trace events code generation, Vladimir Sementsov-Ogievskiy, 2022/01/26
- [PATCH v6 6/7] meson: document, why we don't generate trace events for tests/ and qga/, Vladimir Sementsov-Ogievskiy, 2022/01/26