From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bKovB-0006qd-3w for qemu-devel@nongnu.org; Wed, 06 Jul 2016 11:39:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bKov6-0005Bl-06 for qemu-devel@nongnu.org; Wed, 06 Jul 2016 11:39:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35474) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bKov5-0005Bc-NR for qemu-devel@nongnu.org; Wed, 06 Jul 2016 11:39:23 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5C941C00F70F for ; Wed, 6 Jul 2016 15:39:22 +0000 (UTC) References: <1467809017-25023-1-git-send-email-pbonzini@redhat.com> <1467809017-25023-2-git-send-email-pbonzini@redhat.com> From: Eric Blake Message-ID: <577D2629.80007@redhat.com> Date: Wed, 6 Jul 2016 09:39:21 -0600 MIME-Version: 1.0 In-Reply-To: <1467809017-25023-2-git-send-email-pbonzini@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="vkjJEMbLg6v5WkBpCv4iXaP9b9poRetrn" Subject: Re: [Qemu-devel] [PATCH] qapi: change QmpInputVisitor to QSLIST List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , qemu-devel@nongnu.org Cc: armbru@redhat.com This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --vkjJEMbLg6v5WkBpCv4iXaP9b9poRetrn From: Eric Blake To: Paolo Bonzini , qemu-devel@nongnu.org Cc: armbru@redhat.com Message-ID: <577D2629.80007@redhat.com> Subject: Re: [PATCH] qapi: change QmpInputVisitor to QSLIST References: <1467809017-25023-1-git-send-email-pbonzini@redhat.com> <1467809017-25023-2-git-send-email-pbonzini@redhat.com> In-Reply-To: <1467809017-25023-2-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 07/06/2016 06:43 AM, Paolo Bonzini wrote: > This saves a lot of memory compared to a statically-sized array. >=20 > Signed-off-by: Paolo Bonzini > --- > qapi/qmp-input-visitor.c | 53 ++++++++++++++++++++++++----------------= -------- > 1 file changed, 26 insertions(+), 27 deletions(-) >=20 > @@ -99,17 +100,10 @@ static const QListEntry *qmp_input_push(QmpInputVi= sitor *qiv, QObject *obj, > Error **errp) > { > GHashTable *h; > - StackObject *tos =3D &qiv->stack[qiv->nb_stack]; > + StackObject *tos =3D g_new0(StackObject, 1); > =20 > assert(obj); > - if (qiv->nb_stack >=3D QIV_STACK_SIZE) { You should also delete QIV_STACK_SIZE as it is now unused. > @@ -127,9 +121,7 @@ static const QListEntry *qmp_input_push(QmpInputVis= itor *qiv, QObject *obj, > static void qmp_input_check_struct(Visitor *v, Error **errp) > { > QmpInputVisitor *qiv =3D to_qiv(v); > - StackObject *tos =3D &qiv->stack[qiv->nb_stack - 1]; > - > - assert(qiv->nb_stack > 0); > + StackObject *tos =3D QSLIST_FIRST(&qiv->stack); Does QSLIST_FIRST() properly crash if the list is empty, or do we need to add an assert(tos) to replace the assertion on nb_stack being non-zero= ? Otherwise looking reasonable; looking forward to v2. --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --vkjJEMbLg6v5WkBpCv4iXaP9b9poRetrn Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJXfSYpAAoJEKeha0olJ0NqVo8H/imZXBUSaqO2SQuheo0rYJ4O +0SEFFroV58kLvyy+Yhh/FcaTXH5hmBwzQUzbg2GFCnuhsgS9Sf3DUPHXEx8dGgM v3vmFhsJ9ss7JaQMymrYqzJkHmWbuL3DYdk/RH5zk6i4EXeTq+SYrKet0K8U8tGH 7vhfgjgD8Tmr6vxaqPkaGwouoV3YnPhQUGJzhVgA894Azpvy6qoU/2W4dgi4D999 Nj4lp22VIf8KTP807HIx8L1sXNnVW+QaKIFyxzCHjHNED6eFed5vk31ktoE/xr+H 3Ae3zq+l278Cq14kGX1vWFrGjzmjkzy55MRIpwRKSeaj8/uM08/rzH9Eb+4R1/c= =RR6i -----END PGP SIGNATURE----- --vkjJEMbLg6v5WkBpCv4iXaP9b9poRetrn--