diff mbox series

[v4,18/23] hw/intc/sh_intc: Simplify allocating sources array

Message ID 7257db154178303a7913986e230ec0ce1af387cd.1635449225.git.balaton@eik.bme.hu
State New
Headers show
Series More SH4 clean ups | expand

Commit Message

BALATON Zoltan Oct. 28, 2021, 7:27 p.m. UTC
Use g_new0 instead of g_malloc0 and avoid some unneeded temporary
variable assignments.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
 hw/intc/sh_intc.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

Comments

Philippe Mathieu-Daudé Oct. 29, 2021, 5:46 a.m. UTC | #1
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 <balaton@eik.bme.hu>
> ---
>  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.

>      for (i = 0; i < desc->nr_sources; i++) {

Even clearer as:

       for (i = 0; i < nr_sources; i++) {

> -        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];
>
BALATON Zoltan Oct. 29, 2021, 11:59 a.m. UTC | #2
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 <balaton@eik.bme.hu>
>> ---
>>  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];
>>
>
>
Philippe Mathieu-Daudé Oct. 29, 2021, 12:41 p.m. UTC | #3
On 10/29/21 13:59, BALATON Zoltan wrote:
> 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 <balaton@eik.bme.hu>
>>> ---
>>>  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.

Oh you are right, I missed that.

> 
>>>      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
diff mbox series

Patch

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);
     for (i = 0; i < desc->nr_sources; i++) {
-        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];