Skip to content

Commit

Permalink
maint: avoid useless "if (foo) free(foo)" pattern
Browse files Browse the repository at this point in the history
The free() and g_free() functions both happily accept
NULL on any platform QEMU builds on. As such putting a
conditional 'if (foo)' check before calls to 'free(foo)'
merely serves to bloat the lines of code.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
  • Loading branch information
berrange authored and Michael Tokarev committed Sep 11, 2015
1 parent 4595a48 commit ef1e1e0
Show file tree
Hide file tree
Showing 20 changed files with 39 additions and 93 deletions.
4 changes: 1 addition & 3 deletions backends/hostmem-file.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,7 @@ static void set_mem_path(Object *o, const char *str, Error **errp)
error_setg(errp, "cannot change property value");
return;
}
if (fb->mem_path) {
g_free(fb->mem_path);
}
g_free(fb->mem_path);
fb->mem_path = g_strdup(str);
}

Expand Down
4 changes: 1 addition & 3 deletions bsd-user/elfload.c
Original file line number Diff line number Diff line change
Expand Up @@ -1355,9 +1355,7 @@ int load_elf_binary(struct linux_binprm * bprm, struct target_pt_regs * regs,
}
}
if (!bprm->p) {
if (elf_interpreter) {
free(elf_interpreter);
}
free(elf_interpreter);
free (elf_phdata);
close(bprm->fd);
return -E2BIG;
Expand Down
3 changes: 1 addition & 2 deletions disas/sparc.c
Original file line number Diff line number Diff line change
Expand Up @@ -2622,8 +2622,7 @@ build_hash_table (const sparc_opcode **opcode_table,

memset (hash_table, 0, HASH_SIZE * sizeof (hash_table[0]));
memset (hash_count, 0, HASH_SIZE * sizeof (hash_count[0]));
if (hash_buf != NULL)
free (hash_buf);
free(hash_buf);
hash_buf = malloc (sizeof (* hash_buf) * num_opcodes);
for (i = num_opcodes - 1; i >= 0; --i)
{
Expand Down
9 changes: 3 additions & 6 deletions hw/bt/hci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1151,8 +1151,7 @@ static void bt_hci_reset(struct bt_hci_s *hci)
hci->event_mask[7] = 0x00;
hci->device.inquiry_scan = 0;
hci->device.page_scan = 0;
if (hci->device.lmp_name)
g_free((void *) hci->device.lmp_name);
g_free((void *) hci->device.lmp_name);
hci->device.lmp_name = NULL;
hci->device.class[0] = 0x00;
hci->device.class[1] = 0x00;
Expand Down Expand Up @@ -1829,8 +1828,7 @@ static void bt_submit_hci(struct HCIInfo *info,
case cmd_opcode_pack(OGF_HOST_CTL, OCF_CHANGE_LOCAL_NAME):
LENGTH_CHECK(change_local_name);

if (hci->device.lmp_name)
g_free((void *) hci->device.lmp_name);
g_free((void *) hci->device.lmp_name);
hci->device.lmp_name = g_strndup(PARAM(change_local_name, name),
sizeof(PARAM(change_local_name, name)));
bt_hci_event_complete_status(hci, HCI_SUCCESS);
Expand Down Expand Up @@ -2231,8 +2229,7 @@ static void bt_hci_done(struct HCIInfo *info)

bt_device_done(&hci->device);

if (hci->device.lmp_name)
g_free((void *) hci->device.lmp_name);
g_free((void *) hci->device.lmp_name);

/* Be gentle and send DISCONNECT to all connected peers and those
* currently waiting for us to accept or reject a connection request.
Expand Down
3 changes: 1 addition & 2 deletions hw/core/loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -594,8 +594,7 @@ static int load_uboot_image(const char *filename, hwaddr *ep, hwaddr *loadaddr,
ret = hdr->ih_size;

out:
if (data)
g_free(data);
g_free(data);
close(fd);
return ret;
}
Expand Down
4 changes: 1 addition & 3 deletions hw/core/qdev-properties.c
Original file line number Diff line number Diff line change
Expand Up @@ -422,9 +422,7 @@ static void set_string(Object *obj, Visitor *v, void *opaque,
error_propagate(errp, local_err);
return;
}
if (*ptr) {
g_free(*ptr);
}
g_free(*ptr);
*ptr = str;
}

Expand Down
4 changes: 1 addition & 3 deletions hw/display/exynos4210_fimd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1354,9 +1354,7 @@ static void exynos4210_fimd_reset(DeviceState *d)
fimd_update_get_alpha(s, w);
}

if (s->ifb != NULL) {
g_free(s->ifb);
}
g_free(s->ifb);
s->ifb = NULL;

exynos4210_fimd_invalidate(s);
Expand Down
4 changes: 1 addition & 3 deletions hw/mips/mips_r4k.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,9 +252,7 @@ void mips_r4k_init(MachineState *machine)
fprintf(stderr, "qemu: Warning, could not load MIPS bios '%s'\n",
bios_name);
}
if (filename) {
g_free(filename);
}
g_free(filename);

if (kernel_filename) {
loaderparams.ram_size = ram_size;
Expand Down
4 changes: 1 addition & 3 deletions hw/net/fsl_etsec/rings.c
Original file line number Diff line number Diff line change
Expand Up @@ -464,9 +464,7 @@ static void rx_init_frame(eTSEC *etsec, const uint8_t *buf, size_t size)
etsec->rx_fcb_size = 0;
}

if (etsec->rx_buffer != NULL) {
g_free(etsec->rx_buffer);
}
g_free(etsec->rx_buffer);

/* Do not copy the frame for now */
etsec->rx_buffer = (uint8_t *)buf;
Expand Down
4 changes: 1 addition & 3 deletions hw/net/rocker/rocker.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,9 +265,7 @@ static int tx_consume(Rocker *r, DescInfo *info)
err_no_mem:
err_bad_attr:
for (i = 0; i < ROCKER_TX_FRAGS_MAX; i++) {
if (iov[i].iov_base) {
g_free(iov[i].iov_base);
}
g_free(iov[i].iov_base);
}

return err;
Expand Down
8 changes: 2 additions & 6 deletions hw/net/rocker/rocker_desc.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,7 @@ bool desc_ring_set_size(DescRing *ring, uint32_t size)
}

for (i = 0; i < ring->size; i++) {
if (ring->info[i].buf) {
g_free(ring->info[i].buf);
}
g_free(ring->info[i].buf);
}

ring->size = size;
Expand Down Expand Up @@ -360,9 +358,7 @@ DescRing *desc_ring_alloc(Rocker *r, int index)

void desc_ring_free(DescRing *ring)
{
if (ring->info) {
g_free(ring->info);
}
g_free(ring->info);
g_free(ring);
}

Expand Down
4 changes: 1 addition & 3 deletions hw/nvram/fw_cfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,9 +187,7 @@ static void fw_cfg_bootsplash(FWCfgState *s)
g_free(filename);
return;
}
if (boot_splash_filedata != NULL) {
g_free(boot_splash_filedata);
}
g_free(boot_splash_filedata);
boot_splash_filedata = (uint8_t *)file_data;
boot_splash_filedata_size = file_size;

Expand Down
4 changes: 1 addition & 3 deletions hw/pci-host/prep.c
Original file line number Diff line number Diff line change
Expand Up @@ -328,9 +328,7 @@ static void raven_realize(PCIDevice *d, Error **errp)
if (bios_size < 0 || bios_size > BIOS_SIZE) {
hw_error("qemu: could not load bios image '%s'\n", s->bios_name);
}
if (filename) {
g_free(filename);
}
g_free(filename);
}
}

Expand Down
3 changes: 1 addition & 2 deletions hw/sd/sd.c
Original file line number Diff line number Diff line change
Expand Up @@ -412,8 +412,7 @@ static void sd_reset(SDState *sd)
sd_set_cardstatus(sd);
sd_set_sdstatus(sd);

if (sd->wp_groups)
g_free(sd->wp_groups);
g_free(sd->wp_groups);
sd->wp_switch = sd->blk ? blk_is_read_only(sd->blk) : false;
sd->wpgrps_size = sect;
sd->wp_groups = bitmap_new(sd->wpgrps_size);
Expand Down
4 changes: 1 addition & 3 deletions hw/usb/hcd-xhci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1453,9 +1453,7 @@ static int xhci_ep_nuke_one_xfer(XHCITransfer *t, TRBCCode report)
t->running_retry = 0;
killed = 1;
}
if (t->trbs) {
g_free(t->trbs);
}
g_free(t->trbs);

t->trbs = NULL;
t->trb_count = t->trb_alloced = 0;
Expand Down
4 changes: 1 addition & 3 deletions hw/xen/xen_pt_config_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -2081,9 +2081,7 @@ void xen_pt_config_delete(XenPCIPassthroughState *s)
if (s->msix) {
xen_pt_msix_delete(s);
}
if (s->msi) {
g_free(s->msi);
}
g_free(s->msi);

/* free all register group entry */
QLIST_FOREACH_SAFE(reg_group, &s->reg_grps, entries, next_grp) {
Expand Down
8 changes: 2 additions & 6 deletions migration/savevm.c
Original file line number Diff line number Diff line change
Expand Up @@ -551,9 +551,7 @@ void unregister_savevm(DeviceState *dev, const char *idstr, void *opaque)
QTAILQ_FOREACH_SAFE(se, &savevm_state.handlers, entry, new_se) {
if (strcmp(se->idstr, id) == 0 && se->opaque == opaque) {
QTAILQ_REMOVE(&savevm_state.handlers, se, entry);
if (se->compat) {
g_free(se->compat);
}
g_free(se->compat);
g_free(se->ops);
g_free(se);
}
Expand Down Expand Up @@ -612,9 +610,7 @@ void vmstate_unregister(DeviceState *dev, const VMStateDescription *vmsd,
QTAILQ_FOREACH_SAFE(se, &savevm_state.handlers, entry, new_se) {
if (se->vmsd == vmsd && se->opaque == opaque) {
QTAILQ_REMOVE(&savevm_state.handlers, se, entry);
if (se->compat) {
g_free(se->compat);
}
g_free(se->compat);
g_free(se);
}
}
Expand Down
4 changes: 1 addition & 3 deletions qemu-char.c
Original file line number Diff line number Diff line change
Expand Up @@ -2710,9 +2710,7 @@ static int tcp_set_msgfds(CharDriverState *chr, int *fds, int num)
TCPCharDriver *s = chr->opaque;

/* clear old pending fd array */
if (s->write_msgfds) {
g_free(s->write_msgfds);
}
g_free(s->write_msgfds);

if (num) {
s->write_msgfds = g_malloc(num * sizeof(int));
Expand Down
36 changes: 13 additions & 23 deletions tests/bios-tables-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,31 +161,23 @@ static void free_test_data(test_data *data)
AcpiSdtTable *temp;
int i;

if (data->rsdt_tables_addr) {
g_free(data->rsdt_tables_addr);
}
g_free(data->rsdt_tables_addr);

for (i = 0; i < data->tables->len; ++i) {
temp = &g_array_index(data->tables, AcpiSdtTable, i);
if (temp->aml) {
g_free(temp->aml);
}
if (temp->aml_file) {
if (!temp->tmp_files_retain &&
g_strstr_len(temp->aml_file, -1, "aml-")) {
unlink(temp->aml_file);
}
g_free(temp->aml_file);
g_free(temp->aml);
if (temp->aml_file &&
!temp->tmp_files_retain &&
g_strstr_len(temp->aml_file, -1, "aml-")) {
unlink(temp->aml_file);
}
if (temp->asl) {
g_free(temp->asl);
}
if (temp->asl_file) {
if (!temp->tmp_files_retain) {
unlink(temp->asl_file);
}
g_free(temp->asl_file);
g_free(temp->aml_file);
g_free(temp->asl);
if (temp->asl_file &&
!temp->tmp_files_retain) {
unlink(temp->asl_file);
}
g_free(temp->asl_file);
}

g_array_free(data->tables, false);
Expand Down Expand Up @@ -420,9 +412,7 @@ static void dump_aml_files(test_data *data, bool rebuild)

close(fd);

if (aml_file) {
g_free(aml_file);
}
g_free(aml_file);
}
}

Expand Down
14 changes: 4 additions & 10 deletions ui/spice-display.c
Original file line number Diff line number Diff line change
Expand Up @@ -737,9 +737,7 @@ static void display_mouse_set(DisplayChangeListener *dcl,
qemu_mutex_lock(&ssd->lock);
ssd->ptr_x = x;
ssd->ptr_y = y;
if (ssd->ptr_move) {
g_free(ssd->ptr_move);
}
g_free(ssd->ptr_move);
ssd->ptr_move = qemu_spice_create_cursor_update(ssd, NULL, on);
qemu_mutex_unlock(&ssd->lock);
}
Expand All @@ -752,13 +750,9 @@ static void display_mouse_define(DisplayChangeListener *dcl,
qemu_mutex_lock(&ssd->lock);
ssd->hot_x = c->hot_x;
ssd->hot_y = c->hot_y;
if (ssd->ptr_move) {
g_free(ssd->ptr_move);
ssd->ptr_move = NULL;
}
if (ssd->ptr_define) {
g_free(ssd->ptr_define);
}
g_free(ssd->ptr_move);
ssd->ptr_move = NULL;
g_free(ssd->ptr_define);
ssd->ptr_define = qemu_spice_create_cursor_update(ssd, c, 0);
qemu_mutex_unlock(&ssd->lock);
}
Expand Down

0 comments on commit ef1e1e0

Please sign in to comment.