On Tue, Oct 08, 2013 at 11:25:06AM -0600, Eric Blake wrote: > virDomainChrGetDomainPtrs() required 4 levels of pointers (taking > a parameter that will be used as an output variable to return the > address of another variable that contains an array of pointers). > This is rather complex to reason about, especially when outside > of the domain_conf file, no other caller should be modifying > the resulting array of pointers directly. Changing the public > signature gives something is easier to reason with, and actually > make const-correct; which is important as it was the only function > that was blocking virDomainDeviceDefCopy from treating its source > as const. > > * src/conf/domain_conf.h (virDomainChrGetDomainPtrs): Use simpler > types, and make const-correct for external users. > * src/conf/domain_conf.c (virDomainChrGetDomainPtrs): Split... > (virDomainChrGetDomainPtrsInternal): ...into an internal version > that lets us modify terms, vs. external form that is read-only. > (virDomainDeviceDefPostParseInternal, virDomainChrFind) > (virDomainChrInsert): Adjust callers. > * src/qemu/qemu_command.c (qemuGetNextChrDevIndex): Adjust caller. > (qemuDomainDeviceAliasIndex): Make const-correct. > > Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> > --- > src/conf/domain_conf.c | 70 ++++++++++++++++++++++++++++++++++--------------- > src/conf/domain_conf.h | 9 ++++--- > src/qemu/qemu_command.c | 14 +++++----- > 3 files changed, 61 insertions(+), 32 deletions(-) ACK 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