On Fri, 29 Oct 2021, Philippe Mathieu-Daudé wrote: > On 10/28/21 21:27, BALATON Zoltan wrote: >> Use g_new0 instead of g_malloc0 and avoid some unneeded temporary >> variable assignments. >> >> Signed-off-by: BALATON Zoltan >> --- >> hw/intc/sh_intc.c | 13 +++---------- >> 1 file changed, 3 insertions(+), 10 deletions(-) >> >> diff --git a/hw/intc/sh_intc.c b/hw/intc/sh_intc.c >> index eb58707e83..ed0a5f87cc 100644 >> --- a/hw/intc/sh_intc.c >> +++ b/hw/intc/sh_intc.c >> @@ -400,21 +400,14 @@ int sh_intc_init(MemoryRegion *sysmem, >> /* Allocate 4 MemoryRegions per register (2 actions * 2 aliases) */ >> desc->iomem_aliases = g_new0(MemoryRegion, >> (nr_mask_regs + nr_prio_regs) * 4); >> - >> - j = 0; >> - i = sizeof(struct intc_source) * nr_sources; >> - desc->sources = g_malloc0(i); >> - >> + desc->sources = g_new0(struct intc_source, nr_sources); > > g_new() is enough, since all get initialized in the next line. Only their parent fields get init not the whole struct so I think g_new0 is still needed. >> for (i = 0; i < desc->nr_sources; i++) { > > Even clearer as: > > for (i = 0; i < nr_sources; i++) { This may be a small improvement but not too much, desc->sources is assigned a few lines before. I consider this change but not sure about the g_new0. Regards, BALATON Zoltan >> - struct intc_source *source = &desc->sources[i]; >> - >> - source->parent = desc; >> + desc->sources[i].parent = desc; >> } >> - >> desc->irqs = qemu_allocate_irqs(sh_intc_set_irq, desc, nr_sources); >> memory_region_init_io(&desc->iomem, NULL, &sh_intc_ops, desc, "intc", >> 0x100000000ULL); >> - >> + j = 0; >> if (desc->mask_regs) { >> for (i = 0; i < desc->nr_mask_regs; i++) { >> struct intc_mask_reg *mr = &desc->mask_regs[i]; >> > >