Revision d195325b tests/test-qmp-input-visitor.c

b/tests/test-qmp-input-visitor.c
151 151
static void visit_type_TestStruct(Visitor *v, TestStruct **obj,
152 152
                                  const char *name, Error **errp)
153 153
{
154
    visit_start_struct(v, (void **)obj, "TestStruct", name, sizeof(TestStruct),
155
                       errp);
156

  
157
    visit_type_int(v, &(*obj)->integer, "integer", errp);
158
    visit_type_bool(v, &(*obj)->boolean, "boolean", errp);
159
    visit_type_str(v, &(*obj)->string, "string", errp);
160

  
161
    visit_end_struct(v, errp);
154
    Error *err = NULL;
155
    if (!error_is_set(errp)) {
156
        visit_start_struct(v, (void **)obj, "TestStruct", name, sizeof(TestStruct),
157
                           &err);
158
        if (!err) {
159
            visit_type_int(v, &(*obj)->integer, "integer", &err);
160
            visit_type_bool(v, &(*obj)->boolean, "boolean", &err);
161
            visit_type_str(v, &(*obj)->string, "string", &err);
162

  
163
            /* Always call end_struct if start_struct succeeded.  */
164
            error_propagate(errp, err);
165
            err = NULL;
166
            visit_end_struct(v, &err);
167
        }
168
        error_propagate(errp, err);
169
    }
162 170
}
163 171

  
164 172
static void test_visitor_in_struct(TestInputVisitorData *data,

Also available in: Unified diff