Memory allocation in ivas_dirac_dec_output_synthesis_process_slot_fx()
# Basic info <!--- Add commit SHA used to reproduce--> - Float reference: - Encoder (float): n/a - Decoder (float): n/a - Fixed point: - Encoder (fixed): f7a4b6f767ef1ec4f02b3ec4a38e8e0dbd8aeb80 - Decoder (fixed): f7a4b6f767ef1ec4f02b3ec4a38e8e0dbd8aeb80 # Bug description In the function `ivas_dirac_dec_output_synthesis_process_slot_fx()` , which is called 16x per frame, is a small malloc(), free(): Line 820: ``` /*Direct gain*/ Word16 *Q_temp_cy_cross_dir_smooth_fx = (Word16 *) malloc( num_freq_bands * num_channels_dir * sizeof( Word16 ) ); ``` Line 1164: ``` free( Q_temp_cy_cross_dir_smooth_fx ); ``` This should be avoided for fast execution. Ideally, the open/free should be moved to `ivas_dirac_dec_output_synthesis_close_fx()` and `ivas_dirac_dec_output_synthesis_close_fx()`, and a pointer to the allocated memory should be added to `DIRAC_REND_HANDLE hDirACRend`.
issue