[libvirt PATCH v2 22/24] qemu: pass pointers instead of copying objects for qemuFirmware*FreeContent()
Daniel Henrique Barboza
danielhb413 at gmail.com
Thu Feb 4 19:31:11 UTC 2021
On 2/4/21 12:57 AM, Laine Stump wrote:
> These functions all cooperate to free memory pointed to by a single
> object that contains (doesn't *point to*, but acutally contains)
s/acutally/actually
> several sub-objects. They were written to send copies of these
> sub-objects to subordinate functions, rather than just sending
> pointers to the sub-objects.
>
> Let's change these functions to just send pointers to the objects
> they're cleaning out rather than all the wasteful and pointless
> copying.
>
> Signed-off-by: Laine Stump <laine at redhat.com>
> ---
> src/qemu/qemu_firmware.c | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c
> index c22b1f1e9c..aad39ee038 100644
> --- a/src/qemu/qemu_firmware.c
> +++ b/src/qemu/qemu_firmware.c
> @@ -188,47 +188,47 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuFirmwareOSInterface, qemuFirmwareOSInterfaceFr
>
>
> static void
> -qemuFirmwareFlashFileFreeContent(qemuFirmwareFlashFile flash)
> +qemuFirmwareFlashFileFreeContent(qemuFirmwareFlashFilePtr flash)
> {
> - VIR_FREE(flash.filename);
> - VIR_FREE(flash.format);
> + VIR_FREE(flash->filename);
> + VIR_FREE(flash->format);
> }
>
>
> static void
> -qemuFirmwareMappingFlashFreeContent(qemuFirmwareMappingFlash flash)
> +qemuFirmwareMappingFlashFreeContent(qemuFirmwareMappingFlashPtr flash)
> {
> - qemuFirmwareFlashFileFreeContent(flash.executable);
> - qemuFirmwareFlashFileFreeContent(flash.nvram_template);
> + qemuFirmwareFlashFileFreeContent(&flash->executable);
> + qemuFirmwareFlashFileFreeContent(&flash->nvram_template);
> }
>
>
> static void
> -qemuFirmwareMappingKernelFreeContent(qemuFirmwareMappingKernel kernel)
> +qemuFirmwareMappingKernelFreeContent(qemuFirmwareMappingKernelPtr kernel)
> {
> - VIR_FREE(kernel.filename);
> + VIR_FREE(kernel->filename);
> }
>
>
> static void
> -qemuFirmwareMappingMemoryFreeContent(qemuFirmwareMappingMemory memory)
> +qemuFirmwareMappingMemoryFreeContent(qemuFirmwareMappingMemoryPtr memory)
> {
> - VIR_FREE(memory.filename);
> + VIR_FREE(memory->filename);
> }
>
>
> static void
> -qemuFirmwareMappingFreeContent(qemuFirmwareMapping mapping)
> +qemuFirmwareMappingFreeContent(qemuFirmwareMappingPtr mapping)
> {
> - switch (mapping.device) {
> + switch (mapping->device) {
> case QEMU_FIRMWARE_DEVICE_FLASH:
> - qemuFirmwareMappingFlashFreeContent(mapping.data.flash);
> + qemuFirmwareMappingFlashFreeContent(&mapping->data.flash);
> break;
> case QEMU_FIRMWARE_DEVICE_KERNEL:
> - qemuFirmwareMappingKernelFreeContent(mapping.data.kernel);
> + qemuFirmwareMappingKernelFreeContent(&mapping->data.kernel);
> break;
> case QEMU_FIRMWARE_DEVICE_MEMORY:
> - qemuFirmwareMappingMemoryFreeContent(mapping.data.memory);
> + qemuFirmwareMappingMemoryFreeContent(&mapping->data.memory);
> break;
> case QEMU_FIRMWARE_DEVICE_NONE:
> case QEMU_FIRMWARE_DEVICE_LAST:
> @@ -271,7 +271,7 @@ qemuFirmwareFree(qemuFirmwarePtr fw)
> return;
>
> qemuFirmwareOSInterfaceFree(fw->interfaces);
> - qemuFirmwareMappingFreeContent(fw->mapping);
> + qemuFirmwareMappingFreeContent(&fw->mapping);
> for (i = 0; i < fw->ntargets; i++)
> qemuFirmwareTargetFree(fw->targets[i]);
> g_free(fw->targets);
>
More information about the libvir-list
mailing list