[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 30/32] qapi: Clean up null checking in generated visi
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PULL 30/32] qapi: Clean up null checking in generated visitors |
Date: |
Mon, 3 Mar 2014 12:12:21 -0500 |
From: Markus Armbruster <address@hidden>
Visitors get passed a pointer to the visited object. The generated
visitors try to cope with this pointer being null in some places, for
instance like this:
visit_start_optional(m, obj ? &(*obj)->has_name : NULL, "name", &err);
visit_start_optional() passes its second argument to Visitor method
start_optional. Three out of three methods dereference it
unconditionally.
I fail to see how this pointer could legitimately be null.
All this useless null checking is highly redundant, which Coverity
duly reports. About 200 times.
Remove the useless null checks.
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Luiz Capitulino <address@hidden>
---
scripts/qapi-visit.py | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index 97e9b11..c6de9ae 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -47,9 +47,9 @@ static void visit_type_%(full_name)s_fields(Visitor *m,
%(name)s ** obj, Error *
if base:
ret += mcgen('''
-visit_start_implicit_struct(m, obj ? (void**) &(*obj)->%(c_name)s : NULL,
sizeof(%(type)s), &err);
+visit_start_implicit_struct(m, (void**) &(*obj)->%(c_name)s, sizeof(%(type)s),
&err);
if (!err) {
- visit_type_%(type)s_fields(m, obj ? &(*obj)->%(c_prefix)s%(c_name)s :
NULL, &err);
+ visit_type_%(type)s_fields(m, &(*obj)->%(c_prefix)s%(c_name)s, &err);
error_propagate(errp, err);
err = NULL;
visit_end_implicit_struct(m, &err);
@@ -61,8 +61,8 @@ if (!err) {
for argname, argentry, optional, structured in parse_args(members):
if optional:
ret += mcgen('''
-visit_start_optional(m, obj ? &(*obj)->%(c_prefix)shas_%(c_name)s : NULL,
"%(name)s", &err);
-if (obj && (*obj)->%(prefix)shas_%(c_name)s) {
+visit_start_optional(m, &(*obj)->%(c_prefix)shas_%(c_name)s, "%(name)s", &err);
+if ((*obj)->%(prefix)shas_%(c_name)s) {
''',
c_prefix=c_var(field_prefix), prefix=field_prefix,
c_name=c_var(argname), name=argname)
@@ -72,7 +72,7 @@ if (obj && (*obj)->%(prefix)shas_%(c_name)s) {
ret += generate_visit_struct_body(full_name, argname, argentry)
else:
ret += mcgen('''
-visit_type_%(type)s(m, obj ? &(*obj)->%(c_prefix)s%(c_name)s : NULL,
"%(name)s", &err);
+visit_type_%(type)s(m, &(*obj)->%(c_prefix)s%(c_name)s, "%(name)s", &err);
''',
c_prefix=c_var(field_prefix), prefix=field_prefix,
type=type_name(argentry), c_name=c_var(argname),
@@ -121,7 +121,7 @@ visit_start_struct(m, (void **)obj, "%(name)s", name,
sizeof(%(name)s), &err);
ret += mcgen('''
if (!err) {
- if (!obj || *obj) {
+ if (*obj) {
visit_type_%(name)s_fields(m, obj, &err);
error_propagate(errp, err);
err = NULL;
@@ -273,7 +273,7 @@ void visit_type_%(name)s(Visitor *m, %(name)s ** obj, const
char *name, Error **
if (!error_is_set(errp)) {
visit_start_struct(m, (void **)obj, "%(name)s", name,
sizeof(%(name)s), &err);
if (!err) {
- if (obj && *obj) {
+ if (*obj) {
''',
name=name)
--
1.8.1.4
- [Qemu-devel] [PULL 21/32] tests/qapi-schema: Cover optional command arguments, (continued)
- [Qemu-devel] [PULL 21/32] tests/qapi-schema: Cover optional command arguments, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 24/32] tests/qapi-schema: Cover complex types with base, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 23/32] tests/qapi-schema: Cover anonymous union types, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 26/32] tests/qapi-schema: Cover flat union types, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 25/32] tests/qapi-schema: Cover union types with base, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 31/32] qapi: Clean up superfluous null check in qapi_dealloc_type_str(), Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 29/32] qapi: Drop unused code in qapi-commands.py, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 27/32] qapi: Fix licensing of scripts, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 32/32] qapi: Add missing null check to opts_start_struct(), Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 28/32] qapi: Drop nonsensical header guard in generated qapi-visit.c, Luiz Capitulino, 2014/03/03
- [Qemu-devel] [PULL 30/32] qapi: Clean up null checking in generated visitors,
Luiz Capitulino <=
- Re: [Qemu-devel] [PULL 00/32] QMP queue, Peter Maydell, 2014/03/04