Uh, in visitor.h at the end of this series:
* <example>
* Visitor *v;
* Error *err = NULL;
* int value;
*
* v = ...obtain visitor...
* visit_start_struct(v, NULL, NULL, 0, &err);
* if (err) {
---> goto outobj;
* }
* visit_start_list(v, "list", NULL, 0, &err);
* if (err) {
* goto outobj;
* }
* value = 1;
* visit_type_int(v, NULL, &value, &err);
* if (err) {
* goto outlist;
* }
* value = 2;
* visit_type_int(v, NULL, &value, &err);
* if (err) {
* goto outlist;
* }
* outlist:
* visit_end_list(v);
* if (!err) {
* visit_check_struct(v, &err);
* }
* outobj:
* visit_end_struct(v);
* error_propagate(errp, err);
* ...clean up v...
* </example>
The ---> goto is wrong; we call visit_end_struct() after
visit_start_struct() failed. Haven't dug through the patches to find
the guilty one.