On 12/07/2015 08:55 PM, Eric Blake wrote: > visit_start_struct() and visit_type_enum() had a 'kind' argument > that was usually set to either the stringized version of the > corresponding qapi type name, or to NULL (although some clients > didn't even get that right). But nothing ever used the argument. > It's even hard to argue that it would be useful in a debugger, > as a stack backtrace also tells which type is being visited. > > Therefore, drop the 'kind' argument as dead. While at it, change > the signature of visit_start_struct() to place the 'name' > argument at the end (other than 'errp'), and the 'size' argument > next to 'obj'; this placement of 'name' matches matches how all > other functions in visit.h do it (visit_type_enum() places > 'strings' between 'obj' and 'name'; visit_get_next_type() places > 'promote_int' between 'type' and 'name'). This also avoids the > confusion caused by splitting related pieces of information, > where the old signature an unrelated parameter in between the > "typename" and sizeof(typename) arguments. I should probably spell it out better in the commit message; I was going from: visit_start_struct(v, obj, [kind,] name, size, err) to: visit_start_struct(v, obj, size, [kind,] name, err) then dropping kind as unused. But I'm seriously thinking about doing the argument shuffle in the opposite direction (move name earlier, rather than later): visit_start_struct(v, name, obj, [kind,] size, err) with a global coccinelle patch that changes ALL visit_type_* to put name before obj, because after all we are tying this to JSON which uses "name":value and it looks odd that every one of our visitor functions takes parameters in 'value, name' order. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org