Commit 01c3ffd7 authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Replacing realloc with malloc/copy/free

parent 063db993
Loading
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -3357,13 +3357,41 @@ ivas_error IVAS_DEC_AddAcousticEnvironment(
    /* If not found */
    if ( pAE == NULL )
    {
        IVAS_ROOM_ACOUSTICS_CONFIG_DATA *ppAE = realloc( st_ivas->pAcousticEnvironments, ( st_ivas->acousticEnvironmentsCount + 1 ) * sizeof( IVAS_ROOM_ACOUSTICS_CONFIG_DATA ) );
        IVAS_ROOM_ACOUSTICS_CONFIG_DATA *ppAE = malloc( ( st_ivas->acousticEnvironmentsCount + 1 ) * sizeof( IVAS_ROOM_ACOUSTICS_CONFIG_DATA ) );

        if ( ppAE == NULL )
        {
            return IVAS_ERR_FAILED_ALLOC;
        }

        for ( n = 0; n < st_ivas->acousticEnvironmentsCount; n++ )
        {
            pAE = &ppAE[n];
            pAE->aeID = roomAcousticsConfig.aeID;
            pAE->nBands = roomAcousticsConfig.nBands;
            pAE->acousticPreDelay = roomAcousticsConfig.acousticPreDelay;
            pAE->inputPreDelay = roomAcousticsConfig.inputPreDelay;

            mvr2r( roomAcousticsConfig.pFc_input, pAE->pFc_input, CLDFB_NO_CHANNELS_MAX );
            mvr2r( roomAcousticsConfig.pAcoustic_rt60, pAE->pAcoustic_rt60, CLDFB_NO_CHANNELS_MAX );
            mvr2r( roomAcousticsConfig.pAcoustic_dsr, pAE->pAcoustic_dsr, CLDFB_NO_CHANNELS_MAX );

            pAE->use_er = roomAcousticsConfig.use_er;

            if ( pAE->use_er == 1 )
            {
                pAE->lowComplexity = roomAcousticsConfig.lowComplexity;
                pAE->dimensions.x = roomAcousticsConfig.dimensions.x;
                pAE->dimensions.y = roomAcousticsConfig.dimensions.y;
                pAE->dimensions.z = roomAcousticsConfig.dimensions.z;
                pAE->ListenerOrigin.x = roomAcousticsConfig.ListenerOrigin.x;
                pAE->ListenerOrigin.y = roomAcousticsConfig.ListenerOrigin.y;
                pAE->ListenerOrigin.z = roomAcousticsConfig.ListenerOrigin.z;

                mvr2r( roomAcousticsConfig.AbsCoeff, pAE->AbsCoeff, IVAS_ROOM_ABS_COEFF );
            }
        }

        st_ivas->pAcousticEnvironments = ppAE;
        n = st_ivas->acousticEnvironmentsCount++;
        pAE = &st_ivas->pAcousticEnvironments[n];