From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47299) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b3gug-0005bV-Tv for qemu-devel@nongnu.org; Fri, 20 May 2016 05:40:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b3gua-0002KE-1X for qemu-devel@nongnu.org; Fri, 20 May 2016 05:40:09 -0400 Sender: Paolo Bonzini References: <1463671329-22655-1-git-send-email-kwolf@redhat.com> <1463671329-22655-22-git-send-email-kwolf@redhat.com> <6e34bd03-65d6-ceab-be3b-0e24450ed006@redhat.com> <20160520080549.GB4861@noname.redhat.com> <20160520081017.GC4861@noname.redhat.com> From: Paolo Bonzini Message-ID: <03d90284-3538-d57f-dd93-920b6de227c8@redhat.com> Date: Fri, 20 May 2016 11:39:55 +0200 MIME-Version: 1.0 In-Reply-To: <20160520081017.GC4861@noname.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PULL 21/31] block: Avoid bs->blk in bdrv_next() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org On 20/05/2016 10:10, Kevin Wolf wrote: >> > Already posted a fix. I chose to keep the interface and free the >> > BdrvNextIterator inside bdrv_next(), when we return NULL after the last >> > element. > Oops, should have actually read your email... You're right about callers > that prematurely exit the loop, of course. > > I still don't really like first/next interfaces, though. Perhaps start > the iteration with bs == NULL instead of it == NULL? Yet another alternative is to add a BDRV_NEXT_ITERATOR_INITIALIZER macro. I like it because it's less magic than "x is NULL" and because I would prefer an interface with just the BdrvNextIterator* as the argument to bdrv_next. Thanks, Paolo