[libvirt] [PATCH 1/2] qemu: Refactor qemuParseCommandLine error path for vnc parse

Cole Robinson crobinso at redhat.com
Tue Feb 9 15:43:00 UTC 2016


On 02/09/2016 10:35 AM, Ján Tomko wrote:
> On Tue, Feb 09, 2016 at 07:34:01AM -0500, John Ferlan wrote:
>> Rather than have vnc be a variable within the if, promote it
>> to the top, then adjust the code to use the error label to call
>> virDomainGraphicsDefFree
>>
>> Signed-off-by: John Ferlan <jferlan at redhat.com>
>> ---
>>  src/qemu/qemu_command.c | 24 ++++++------------------
>>  1 file changed, 6 insertions(+), 18 deletions(-)
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index d7f19f3..7b5a36f 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -12999,6 +12999,7 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
>>      int nvirtiodisk = 0;
>>      qemuDomainCmdlineDefPtr cmd = NULL;
>>      virDomainDiskDefPtr disk = NULL;
>> +    virDomainGraphicsDefPtr vnc = NULL;
>>      const char *ceph_args = qemuFindEnv(progenv, "CEPH_ARGS");
>>      bool have_sdl = false;
>>  
> 
> [...]
> 
>> @@ -13991,6 +13978,7 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
>>      return def;
>>  
>>   error:
>> +    virDomainGraphicsDefFree(vnc);
>>      virDomainDiskDefFree(disk);
>>      qemuDomainCmdlineDefFree(cmd);
>>      virDomainDefFree(def);
> 
> The Free call is almost a thousand lines after the declaration.
> This is a great opportunity to split out the VNC parsing into
> a separate function, especially since it seems that its only input
> is a const char* pointing to the command line option and the only
> output is one virDomainGraphicsDef structure.
> 

Doubly nice: move all this code to its own file like qemu_command_parse.c .
AFAICT it has very little overlap with the rest of the (quite large)
qemu_command.c

- Cole




More information about the libvir-list mailing list