From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47064) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yj80G-0003Ig-4M for qemu-devel@nongnu.org; Fri, 17 Apr 2015 11:16:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yj80C-0006m8-KW for qemu-devel@nongnu.org; Fri, 17 Apr 2015 11:16:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48591) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yj80C-0006lq-FY for qemu-devel@nongnu.org; Fri, 17 Apr 2015 11:16:20 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id 21F6A91765 for ; Fri, 17 Apr 2015 15:16:20 +0000 (UTC) Date: Fri, 17 Apr 2015 16:16:15 +0100 From: "Daniel P. Berrange" Message-ID: <20150417151615.GH23619@redhat.com> References: <1429280557-8887-1-git-send-email-berrange@redhat.com> <1429280557-8887-5-git-send-email-berrange@redhat.com> <55311EDE.9090802@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <55311EDE.9090802@redhat.com> Subject: Re: [Qemu-devel] [PATCH v1 RFC 04/34] qom: add object_new_propv / object_new_proplist constructors Reply-To: "Daniel P. Berrange" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org, Stefan Hajnoczi , Gerd Hoffmann On Fri, Apr 17, 2015 at 04:55:26PM +0200, Paolo Bonzini wrote: > > > On 17/04/2015 16:22, Daniel P. Berrange wrote: > > + > > +Object *object_new_proplist(const char *typename, > > + const char *id, > > + Error **errp, > > + va_list vargs) > > +{ > > + Object *obj; > > + const char *propname; > > + > > + obj = object_new(typename); > > + > > + if (object_class_is_abstract(object_get_class(obj))) { > > + error_setg(errp, "object type '%s' is abstract", typename); > > + goto error; > > + } > > + > > + propname = va_arg(vargs, char *); > > + while (propname != NULL) { > > + const char *value = va_arg(vargs, char *); > > + > > + object_property_parse(obj, value, propname, errp); > > + if (*errp) { > > + goto error; > > + } > > + propname = va_arg(vargs, char *); > > + } > > + > > + object_property_add_child(container_get(object_get_root(), "/objects"), > > + id, obj, errp); > > I would pass the parent as an additional argument to > object_new_proplist(). Otherwise looks good. Yep, that does rather make sense for flexibility. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|