[libvirt] [PATCHv2 05/13] snapshot: indent domain xml when nesting
Hai Dong Li
haidongl at linux.vnet.ibm.com
Thu Oct 20 04:04:32 UTC 2011
On 10/20/2011 03:08 AM, Peter Krempa wrote:
> Dňa 29.9.2011 18:22, Eric Blake wrote / napísal(a):
>> <domainsnapshot> is the first public instance of<domain> being
>> used as a sub-element, although we have two other private uses
>> (runtime state, and migration cookie). Although indentation has
>> no effect on XML parsing, using it makes the output more consistent.
>>
>> This uses virBuffer auto-indentation to obtain the effect, for all
>> but the portions of<domain> that are not generated a line at a
>> time into the same virBuffer. Further patches will clean up the
>> remaining problems.
>>
>> * src/conf/domain_conf.h (virDomainDefFormatInternal): New prototype.
>> * src/conf/domain_conf.c (virDomainDefFormatInternal): Export.
>> (virDomainObjFormat, virDomainSnapshotDefFormat): Update callers.
>> * src/libvirt_private.syms (domain_conf.h): Add new export.
>> * src/qemu/qemu_migration.c (qemuMigrationCookieXMLFormat): Use
>> new function.
>> (qemuMigrationCookieXMLFormatStr): Update caller.
>> ---
>> src/conf/domain_conf.c | 16 +++++++++++-----
>> src/conf/domain_conf.h | 3 +++
>> src/libvirt_private.syms | 1 +
>> src/qemu/qemu_migration.c | 25 ++++++++++++++++---------
>> 4 files changed, 31 insertions(+), 14 deletions(-)
>>
>>
>> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
>> index 1122dab..513ec37 100644
>> --- a/src/qemu/qemu_migration.c
>> +++ b/src/qemu/qemu_migration.c
>> @@ -416,14 +416,17 @@ static void
>> qemuMigrationCookieXMLFormat(virBufferPtr buf,
>>
>> if ((mig->flags& QEMU_MIGRATION_COOKIE_PERSISTENT)&&
>> mig->persistent) {
>> - domXML = virDomainDefFormat(mig->persistent,
>> - VIR_DOMAIN_XML_INACTIVE |
>> - VIR_DOMAIN_XML_SECURE);
>> - virBufferAdd(buf, domXML, -1);
> Saves one big strlen().
Yeah, hundreds of bytes at least.
>> - VIR_FREE(domXML);
>>
>>
>> @@ -431,10 +434,14 @@ static char
>> *qemuMigrationCookieXMLFormatStr(qemuMigrationCookiePtr mig)
>> {
>> virBuffer buf = VIR_BUFFER_INITIALIZER;
>>
>> - qemuMigrationCookieXMLFormat(&buf, mig);
>> + if (qemuMigrationCookieXMLFormat(&buf, mig)< 0) {
>> + virBufferFreeAndReset(&buf);
>> + return NULL;
>> + }
>>
>> if (virBufferError(&buf)) {
>> virReportOOMError();
>> + virBufferFreeAndReset(&buf);
> Probably shouldn't be necessary as the virBufferSetError already frees
> the internal buffer.
Maybe for sure. Relying on other function's error handling(especially
when it is a deep calling line) is a little not that sure.
>> return NULL;
>> }
> ACK,
>
> Peter.
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
More information about the libvir-list
mailing list