From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:45869) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLee1-00023j-JJ for qemu-devel@nongnu.org; Tue, 09 Oct 2012 14:35:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TLedx-0007ch-EY for qemu-devel@nongnu.org; Tue, 09 Oct 2012 14:35:05 -0400 Received: from mail-oa0-f45.google.com ([209.85.219.45]:43284) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TLedx-0007cF-AP for qemu-devel@nongnu.org; Tue, 09 Oct 2012 14:35:01 -0400 Received: by mail-oa0-f45.google.com with SMTP id i18so1598884oag.4 for ; Tue, 09 Oct 2012 11:35:00 -0700 (PDT) From: Anthony Liguori In-Reply-To: <507442BB.7060502@redhat.com> References: <1349280245-16341-1-git-send-email-avi@redhat.com> <1349280245-16341-9-git-send-email-avi@redhat.com> <87pq4yib8y.fsf@codemonkey.ws> <506D9D5E.70303@redhat.com> <87391nn0dj.fsf@codemonkey.ws> <507442BB.7060502@redhat.com> Date: Tue, 09 Oct 2012 13:34:56 -0500 Message-ID: <878vbflcj3.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [RFC v1 08/22] memory: provide defaults for MemoryListener operations List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Blue Swirl , Paolo Bonzini , "Michael S. Tsirkin" , qemu-devel@nongnu.org, liu ping fan Avi Kivity writes: > On 10/09/2012 05:14 PM, Anthony Liguori wrote: >>>> >>>> I think it'd be nicer to check for NULL when invoking the functions in >>>> the memory core. >>>> >>>> Then you avoid the exported stub functions entirely. >>> >>> Yes, that's the common style, but I happen not to like the extra check, >>> both from a performance point of view (doesn't apply here of course) and >>> from a readability point of view. >> >> The trouble with your approach is that it introduced a subtle behavior >> based on ordering. IOW: >> >> MemoryListenerOps foo = { >> MEMORY_LISTENER_DEFAULT_OPS, >> .log_sync = ..., >> }; >> >> vs. >> >> MemoryListenerOps foo = { >> .log_sync = ..., >> MEMORY_LISTENER_DEFAULT_OPS, >> }; >> >> Both compile fine but have potentially difficult to debug differences. >> Relying on zero-initialization eliminates the possibility of this problem. >> > > I don't think this is likely (esp. as the bad behaviour would be the > code not working at all) but i will update this for the next version. Thanks. That's the only minor grip I had with the series. It's really a great cleanup! Regards, Anthony Liguori > > -- > error compiling committee.c: too many arguments to function