From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39295) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bCnYi-0003N0-Jv for qemu-devel@nongnu.org; Tue, 14 Jun 2016 08:35:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bCnYd-0007Qc-6t for qemu-devel@nongnu.org; Tue, 14 Jun 2016 08:35:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57609) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bCnYc-0007QP-V6 for qemu-devel@nongnu.org; Tue, 14 Jun 2016 08:35:03 -0400 From: Markus Armbruster References: <1463784024-17242-1-git-send-email-eblake@redhat.com> <1463784024-17242-2-git-send-email-eblake@redhat.com> Date: Tue, 14 Jun 2016 14:35:00 +0200 In-Reply-To: <1463784024-17242-2-git-send-email-eblake@redhat.com> (Eric Blake's message of "Fri, 20 May 2016 16:40:10 -0600") Message-ID: <877fdsdk3v.fsf@dusky.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH v7 01/15] qapi: Consolidate object visitors List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org, Michael Roth Eric Blake writes: > Rather than having two separate visitor callbacks with items > already broken out, pass the actual QAPISchemaObjectType object > to the visitor. This lets the visitor access things like > type.is_implicit() without needing another parameter, resolving > a TODO from previous patches. > > For convenience and consistency, the 'name' and 'info' parameters > are still provided, even though they are now redundant with > 'typ.name' and 'typ.info'. > > Signed-off-by: Eric Blake We've seen this one before :) The previous review is relevant: Message-ID: <878u0hn08l.fsf@dusky.pond.sub.org> http://lists.nongnu.org/archive/html/qemu-devel/2016-04/msg02151.html Quote its recap of pros and cons: * The existing interface def visit_object_type(self, name, info, base, members, variants): def visit_object_type_flat(self, name, info, members, variants): is explicit and narrow, but when you need more information, you have to add parameters or functions. * The new interface def visit_object_type(self, name, info, typ): avoids that, but now its users can access everything. End quote. Let's see how this series profits from the patch, and whether we want to change the other visit methods as well for consistency.