int i;
static const SpeexNBMode * nb_mode (void){  const SpeexSubmode ** submodes;  int quality_map[11] = {1, 8, 2, 3, 3, 4, 4, 5, 5, 6, 7};  const SpeexNBMode * ret;  int i;  submodes = (const SpeexSubmode **)    speex_alloc (sizeof (SpeexSubmode *) * SB_SUBMODES);  if (submodes == NULL) return NULL;  memset (submodes, 0, sizeof (submodes));  if (!(submodes[1] = nb_submode1())) goto nb_1;  if (!(submodes[2] = nb_submode2())) goto nb_2;  if (!(submodes[3] = nb_submode3())) goto nb_3;  if (!(submodes[4] = nb_submode4())) goto nb_4;  if (!(submodes[5] = nb_submode5())) goto nb_5;  if (!(submodes[6] = nb_submode6())) goto nb_6;  if (!(submodes[7] = nb_submode7())) goto nb_7;  if (!(submodes[8] = nb_submode8())) goto nb_8;  ret = nb_mode_new (   160,    /*frameSize*/   40,     /*subframeSize*/   10,     /*lpcSize*/   640,    /*bufSize*/   17,     /*pitchStart*/   144,    /*pitchEnd*/#ifdef FIXED_POINT   29491, 19661, /* gamma1, gamma2 */#else   0.9, 0.6, /* gamma1, gamma2 */#endif   .012,   /*lag_factor*/   1.0002, /*lpc_floor*/#ifdef EPIC_48K   0,#endif   submodes,   5,   quality_map   );  if (ret == NULL) goto nb_8;   /* If nb_mode_new() was successful, the references to submodes have been   * copied into ret->submodes[], and it's safe to free submodes.   */  speex_free (submodes);  return ret;  /* Cleanup on memory allocation errors */ nb_8: speex_submode_free (submodes[8]); nb_7: speex_submode_free (submodes[7]); nb_6: speex_submode_free (submodes[6]); nb_5: speex_submode_free (submodes[5]); nb_4: speex_submode_free (submodes[4]); nb_3: speex_submode_free (submodes[3]); nb_2: speex_submode_free (submodes[2]); nb_1: speex_submode_free (submodes[1]);  speex_free (submodes);  return NULL;};