| Index: third_party/opus/src/silk/fixed/schur_FIX.c
|
| diff --git a/third_party/opus/src/silk/fixed/schur_FIX.c b/third_party/opus/src/silk/fixed/schur_FIX.c
|
| index c4c0ef23b47804e5f56c7c5d58c66556eef5a01e..59d44a6f7fe858c21eebca31b6be4430acd48319 100644
|
| --- a/third_party/opus/src/silk/fixed/schur_FIX.c
|
| +++ b/third_party/opus/src/silk/fixed/schur_FIX.c
|
| @@ -43,28 +43,29 @@ opus_int32 silk_schur( /* O Returns residual ene
|
| opus_int32 C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ];
|
| opus_int32 Ctmp1, Ctmp2, rc_tmp_Q15;
|
|
|
| - silk_assert( order==6||order==8||order==10||order==12||order==14||order==16 );
|
| + silk_assert( order >= 0 && order <= SILK_MAX_ORDER_LPC );
|
|
|
| /* Get number of leading zeros */
|
| lz = silk_CLZ32( c[ 0 ] );
|
|
|
| /* Copy correlations and adjust level to Q30 */
|
| + k = 0;
|
| if( lz < 2 ) {
|
| /* lz must be 1, so shift one to the right */
|
| - for( k = 0; k < order + 1; k++ ) {
|
| + do {
|
| C[ k ][ 0 ] = C[ k ][ 1 ] = silk_RSHIFT( c[ k ], 1 );
|
| - }
|
| + } while( ++k <= order );
|
| } else if( lz > 2 ) {
|
| /* Shift to the left */
|
| lz -= 2;
|
| - for( k = 0; k < order + 1; k++ ) {
|
| + do {
|
| C[ k ][ 0 ] = C[ k ][ 1 ] = silk_LSHIFT( c[ k ], lz );
|
| - }
|
| + } while( ++k <= order );
|
| } else {
|
| /* No need to shift */
|
| - for( k = 0; k < order + 1; k++ ) {
|
| + do {
|
| C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ];
|
| - }
|
| + } while( ++k <= order );
|
| }
|
|
|
| for( k = 0; k < order; k++ ) {
|
|
|