Eric Blake <ebl...@redhat.com> writes: > On 04/29/2016 06:10 AM, Eric Blake wrote: >> On 04/29/2016 02:28 AM, Markus Armbruster wrote: >>> Eric Blake <ebl...@redhat.com> writes: >>> >>>> Our existing input visitors were not very consistent on errors >>>> in a function taking 'TYPE **obj' (that is, start_struct(), >>>> start_alternate(), type_str(), and type_any(). next_list() is >>>> similar, except that since commit 08f9541, it can't fail). >>> >>> Multiple sentences in a parenthesis, ugh :) >>> >>> Our existing input visitors were not very consistent on errors in a >>> function taking 'TYPE **obj'. These are start_struct(), >>> start_alternate(), type_str(), and type_any(). next_list() is >>> similar, but can't fail (see commit since 08f9541). >>> >>> Can touch up on commit. >>> >> >> Yes, sounds better. > > Spoke too soon: "see commit since 08f9541" is too wordy, should be > either "see commit 08f9541" or "since commit 08f9541"
I'm terribly prone to leaving unwanted words behind when tinkering with a sentence... Thanks! >>>> @@ -51,10 +57,16 @@ void visit_start_alternate(Visitor *v, const char >>>> *name, >>>> GenericAlternate **obj, size_t size, >>>> bool promote_int, Error **errp) >>>> { >>>> + Error *err = NULL; >>>> + >>>> assert(obj && size >= sizeof(GenericAlternate)); >>>> if (v->start_alternate) { >>>> - v->start_alternate(v, name, obj, size, promote_int, errp); >>>> + v->start_alternate(v, name, obj, size, promote_int, &err); >>>> } >>>> + if (v->type == VISITOR_INPUT) { >>>> + assert(!err != !*obj); >>> >>> Could assert(v->start_alternate && !err != !*obj), to preempt "what if >>> !v->start_alternate" worries. If you like that, I can do it on commit. >> >> Can't hurt :) Done.