| Index: silk/PLC.c
 | 
| diff --git a/silk/PLC.c b/silk/PLC.c
 | 
| index 1b93d06e653e6675f4a40c0450f9f36ca31def4a..8d5472958daf6b5c27406a42eb5ed210f71cd6d7 100644
 | 
| --- a/silk/PLC.c
 | 
| +++ b/silk/PLC.c
 | 
| @@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE.
 | 
|  #endif
 | 
|  
 | 
|  #include "main.h"
 | 
| +#include "stack_alloc.h"
 | 
|  #include "PLC.h"
 | 
|  
 | 
|  #define NB_ATT 2
 | 
| @@ -178,12 +179,17 @@ static inline void silk_PLC_conceal(
 | 
|      opus_int16 rand_scale_Q14;
 | 
|      opus_int16 *B_Q14, *exc_buf_ptr;
 | 
|      opus_int32 *sLPC_Q14_ptr;
 | 
| -    opus_int16 exc_buf[ 2 * MAX_SUB_FRAME_LENGTH ];
 | 
| +    VARDECL( opus_int16, exc_buf );
 | 
|      opus_int16 A_Q12[ MAX_LPC_ORDER ];
 | 
| -    opus_int16 sLTP[ MAX_FRAME_LENGTH ];
 | 
| -    opus_int32 sLTP_Q14[ 2 * MAX_FRAME_LENGTH ];
 | 
| +    VARDECL( opus_int16, sLTP );
 | 
| +    VARDECL( opus_int32, sLTP_Q14 );
 | 
|      silk_PLC_struct *psPLC = &psDec->sPLC;
 | 
|      opus_int32 prevGain_Q10[2];
 | 
| +    SAVE_STACK;
 | 
| +
 | 
| +    ALLOC( exc_buf, 2*psPLC->subfr_length, opus_int16 );
 | 
| +    ALLOC( sLTP, psDec->ltp_mem_length, opus_int16 );
 | 
| +    ALLOC( sLTP_Q14, psDec->ltp_mem_length + psDec->frame_length, opus_int32 );
 | 
|  
 | 
|      prevGain_Q10[0] = silk_RSHIFT( psPLC->prevGain_Q16[ 0 ], 6);
 | 
|      prevGain_Q10[1] = silk_RSHIFT( psPLC->prevGain_Q16[ 1 ], 6);
 | 
| @@ -354,9 +360,10 @@ static inline void silk_PLC_conceal(
 | 
|      for( i = 0; i < MAX_NB_SUBFR; i++ ) {
 | 
|          psDecCtrl->pitchL[ i ] = lag;
 | 
|      }
 | 
| +    RESTORE_STACK;
 | 
|  }
 | 
|  
 | 
| -/* Glues concealed frames with new good recieved frames */
 | 
| +/* Glues concealed frames with new good received frames */
 | 
|  void silk_PLC_glue_frames(
 | 
|      silk_decoder_state                  *psDec,             /* I/O decoder state        */
 | 
|      opus_int16                          frame[],            /* I/O signal               */
 | 
| 
 |