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.

Reply via email to