diff mbox series

[08/11] audio/audio_template: use g_new0() to replace audio_calloc()

Message ID 20221218171539.11193-8-vr_qemu@t-online.de (mailing list archive)
State New, archived
Headers show
Series audio: more improvements | expand

Commit Message

Volker Rümelin Dec. 18, 2022, 5:15 p.m. UTC
Replace audio_calloc() with the equivalent g_new0().

With a n_structs argument >= 1, g_new0() never returns NULL.
Also remove the unnecessary NULL checks.

Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
---
 audio/audio_template.h | 23 ++++++-----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

Comments

Richard Henderson Dec. 18, 2022, 9:02 p.m. UTC | #1
On 12/18/22 09:15, Volker Rümelin wrote:
> Replace audio_calloc() with the equivalent g_new0().
> 
> With a n_structs argument >= 1, g_new0() never returns NULL.
> Also remove the unnecessary NULL checks.
> 
> Signed-off-by: Volker Rümelin<vr_qemu@t-online.de>
> ---
>   audio/audio_template.h | 23 ++++++-----------------
>   1 file changed, 6 insertions(+), 17 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
Daniel P. Berrangé Jan. 16, 2023, 9:03 a.m. UTC | #2
On Sun, Dec 18, 2022 at 06:15:36PM +0100, Volker Rümelin wrote:
> Replace audio_calloc() with the equivalent g_new0().
> 
> With a n_structs argument >= 1, g_new0() never returns NULL.
> Also remove the unnecessary NULL checks.
> 
> Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
> ---
>  audio/audio_template.h | 23 ++++++-----------------
>  1 file changed, 6 insertions(+), 17 deletions(-)
> 
> diff --git a/audio/audio_template.h b/audio/audio_template.h
> index 5f51ef26b2..9c600448fb 100644
> --- a/audio/audio_template.h
> +++ b/audio/audio_template.h
> @@ -129,12 +129,7 @@ static int glue (audio_pcm_sw_alloc_resources_, TYPE) (SW *sw)
>          return -1;
>      }
>  
> -    sw->buf = audio_calloc(__func__, samples, sizeof(struct st_sample));
> -    if (!sw->buf) {
> -        dolog ("Could not allocate buffer for `%s' (%d samples)\n",
> -               SW_NAME (sw), samples);
> -        return -1;
> -    }
> +    sw->buf = g_new0(st_sample, samples);

"samples" is a signed integer, and audio_calloc would check for
it being negative and raise an error. It would also check for
samples being zero. I think we still need both these checks,
as a negative value of samples when cast to size_t would be a
huge size.


With regards,
Daniel
Volker Rümelin Jan. 17, 2023, 7:02 a.m. UTC | #3
Am 16.01.23 um 10:03 schrieb Daniel P. Berrangé:
> On Sun, Dec 18, 2022 at 06:15:36PM +0100, Volker Rümelin wrote:
>> Replace audio_calloc() with the equivalent g_new0().
>>
>> With a n_structs argument >= 1, g_new0() never returns NULL.
>> Also remove the unnecessary NULL checks.
>>
>> Signed-off-by: Volker Rümelin<vr_qemu@t-online.de>
>> ---
>>   audio/audio_template.h | 23 ++++++-----------------
>>   1 file changed, 6 insertions(+), 17 deletions(-)
>>
>> diff --git a/audio/audio_template.h b/audio/audio_template.h
>> index 5f51ef26b2..9c600448fb 100644
>> --- a/audio/audio_template.h
>> +++ b/audio/audio_template.h
>> @@ -129,12 +129,7 @@ static int glue (audio_pcm_sw_alloc_resources_, TYPE) (SW *sw)
>>           return -1;
>>       }
>>   
>> -    sw->buf = audio_calloc(__func__, samples, sizeof(struct st_sample));
>> -    if (!sw->buf) {
>> -        dolog ("Could not allocate buffer for `%s' (%d samples)\n",
>> -               SW_NAME (sw), samples);
>> -        return -1;
>> -    }
>> +    sw->buf = g_new0(st_sample, samples);
> "samples" is a signed integer, and audio_calloc would check for
> it being negative and raise an error. It would also check for
> samples being zero. I think we still need both these checks,
> as a negative value of samples when cast to size_t would be a
> huge size.

Hi Daniel,

patch 01/11 ("audio: log unimplemented audio device sample rates") takes 
care of samples == 0. But you are right, I didn't consider samples < 0. 
I will send a version 2 patch within the next few days.

With best regards,
Volker

> With regards,
> Daniel
diff mbox series

Patch

diff --git a/audio/audio_template.h b/audio/audio_template.h
index 5f51ef26b2..9c600448fb 100644
--- a/audio/audio_template.h
+++ b/audio/audio_template.h
@@ -129,12 +129,7 @@  static int glue (audio_pcm_sw_alloc_resources_, TYPE) (SW *sw)
         return -1;
     }
 
-    sw->buf = audio_calloc(__func__, samples, sizeof(struct st_sample));
-    if (!sw->buf) {
-        dolog ("Could not allocate buffer for `%s' (%d samples)\n",
-               SW_NAME (sw), samples);
-        return -1;
-    }
+    sw->buf = g_new0(st_sample, samples);
 
 #ifdef DAC
     sw->rate = st_rate_start (sw->info.freq, sw->hw->info.freq);
@@ -407,34 +402,28 @@  static SW *glue(audio_pcm_create_voice_pair_, TYPE)(
         hw_as = *as;
     }
 
-    sw = audio_calloc(__func__, 1, sizeof(*sw));
-    if (!sw) {
-        dolog ("Could not allocate soft voice `%s' (%zu bytes)\n",
-               sw_name ? sw_name : "unknown", sizeof (*sw));
-        goto err1;
-    }
+    sw = g_new0(SW, 1);
     sw->s = s;
 
     hw = glue(audio_pcm_hw_add_, TYPE)(s, &hw_as);
     if (!hw) {
         dolog("Could not create a backend for voice `%s'\n", sw_name);
-        goto err2;
+        goto err1;
     }
 
     glue (audio_pcm_hw_add_sw_, TYPE) (hw, sw);
 
     if (glue (audio_pcm_sw_init_, TYPE) (sw, hw, sw_name, as)) {
-        goto err3;
+        goto err2;
     }
 
     return sw;
 
-err3:
+err2:
     glue (audio_pcm_hw_del_sw_, TYPE) (sw);
     glue (audio_pcm_hw_gc_, TYPE) (&hw);
-err2:
-    g_free (sw);
 err1:
+    g_free(sw);
     return NULL;
 }