From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NtQgu-0004jv-R0 for qemu-devel@nongnu.org; Sun, 21 Mar 2010 15:20:04 -0400 Received: from [199.232.76.173] (port=58006 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NtQgt-0004jj-Gd for qemu-devel@nongnu.org; Sun, 21 Mar 2010 15:20:03 -0400 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NtQgs-0006lC-Ct for qemu-devel@nongnu.org; Sun, 21 Mar 2010 15:20:03 -0400 Received: from mx1.redhat.com ([209.132.183.28]:19344) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NtQgr-0006l8-VP for qemu-devel@nongnu.org; Sun, 21 Mar 2010 15:20:02 -0400 Date: Sun, 21 Mar 2010 21:16:31 +0200 From: "Michael S. Tsirkin" Subject: Re: [Qemu-devel] Re: [PATCH 0/9] Virtio cleanups Message-ID: <20100321191631.GA13355@redhat.com> References: <20100318064015.GA16973@redhat.com> <20100318074239.GA23474@redhat.com> <20100318090711.GB23649@redhat.com> <20100319014159.GB14108@shareable.org> <20100321143103.GD12758@redhat.com> <20100321181143.GE4174@shareable.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100321181143.GE4174@shareable.org> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jamie Lokier Cc: qemu-devel@nongnu.org, Juan Quintela On Sun, Mar 21, 2010 at 06:11:43PM +0000, Jamie Lokier wrote: > Michael S. Tsirkin wrote: > > That's version 1 of my patch. Version 2 removed even need for macro > > completely by moving allocations to the caller. > > The downside of moving allocations are: (1) it's one more call in the > caller, to allocate the type, (2) it needs a virtual destructor for > each type to free the object, which can clutter the code if there is > no other reason for virtual destructors. > > I don't think those are necessarily bad, but they can remove from the > neatness of existing code. Personally I favour an occasional macro > using sizeof/offsetof/container_of if the result is a natural and > sensible API to all of its callers. > > -- Jamie We need to free in caller anyway because structure is used after cleanup. This can be changed by restructuring code ... I don't have a strong preference, anything is better than the hack relying on field being at offset 0 in structure. -- MST