On Fri, Jan 11, 2013 at 04:17:20PM -0700, Eric Blake wrote: > On 01/11/2013 05:13 AM, Daniel P. Berrange wrote: > > From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> > > > > Currently all classes must directly inherit from virObject. > > This allows for arbitrarily deep hierarchy. There's not much > > too this aside from chaining up the 'dispose' handlers from > > s/too/to/ > > > each class & providing APIs to check types. > > --- > > > -virClassPtr virClassNew(const char *name, > > +virClassPtr virClassNew(virClassPtr parent, > > + const char *name, > > size_t objectSize, > > virObjectDisposeCallback dispose) > > { > > virClassPtr klass; > > > > + if (parent == NULL && > > + STRNEQ(name, "virObject")) { > > + virReportInvalidNonNullArg(parent); > > + return NULL; > > Would it have been any easier to let callers pass NULL when they want to > have virObject as the default parent, instead of making all callers have > to use virClassForObject()? Then again, you've already touched > everyone, so don't change the bikeshed color again. Well 'NULL' needs to mean 'no parent' so we can initialize virObject, so it felt wrong to also have it mean 'virObject as a parent' for every other callers. 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list