Revision 8f91ad8a scripts/qapi-commands.py
b/scripts/qapi-commands.py | ||
---|---|---|
128 | 128 |
|
129 | 129 |
def gen_visitor_input_block(args, obj, dealloc=False): |
130 | 130 |
ret = "" |
131 |
errparg = 'errp' |
|
132 |
|
|
131 | 133 |
if len(args) == 0: |
132 | 134 |
return ret |
133 | 135 |
|
134 | 136 |
push_indent() |
135 | 137 |
|
136 | 138 |
if dealloc: |
139 |
errparg = 'NULL' |
|
137 | 140 |
ret += mcgen(''' |
138 | 141 |
md = qapi_dealloc_visitor_new(); |
139 | 142 |
v = qapi_dealloc_get_visitor(md); |
... | ... | |
148 | 151 |
for argname, argtype, optional, structured in parse_args(args): |
149 | 152 |
if optional: |
150 | 153 |
ret += mcgen(''' |
151 |
visit_start_optional(v, &has_%(c_name)s, "%(name)s", errp);
|
|
154 |
visit_start_optional(v, &has_%(c_name)s, "%(name)s", %(errp)s);
|
|
152 | 155 |
if (has_%(c_name)s) { |
153 | 156 |
''', |
154 |
c_name=c_var(argname), name=argname) |
|
157 |
c_name=c_var(argname), name=argname, errp=errparg)
|
|
155 | 158 |
push_indent() |
156 | 159 |
ret += mcgen(''' |
157 |
%(visitor)s(v, &%(c_name)s, "%(name)s", errp);
|
|
160 |
%(visitor)s(v, &%(c_name)s, "%(name)s", %(errp)s);
|
|
158 | 161 |
''', |
159 | 162 |
c_name=c_var(argname), name=argname, argtype=argtype, |
160 |
visitor=type_visitor(argtype)) |
|
163 |
visitor=type_visitor(argtype), errp=errparg)
|
|
161 | 164 |
if optional: |
162 | 165 |
pop_indent() |
163 | 166 |
ret += mcgen(''' |
164 | 167 |
} |
165 |
visit_end_optional(v, errp);
|
|
166 |
''') |
|
168 |
visit_end_optional(v, %(errp)s);
|
|
169 |
''', errp=errparg)
|
|
167 | 170 |
|
168 | 171 |
if dealloc: |
169 | 172 |
ret += mcgen(''' |
... | ... | |
194 | 197 |
} |
195 | 198 |
qmp_output_visitor_cleanup(mo); |
196 | 199 |
v = qapi_dealloc_get_visitor(md); |
197 |
%(visitor)s(v, &ret_in, "unused", errp);
|
|
200 |
%(visitor)s(v, &ret_in, "unused", NULL);
|
|
198 | 201 |
qapi_dealloc_visitor_cleanup(md); |
199 | 202 |
} |
200 | 203 |
''', |
Also available in: Unified diff