@@ -450,7 +450,10 @@ int ms_audio_compare_silence_and_speech(const char *ref_file,
450450 const int stop_time_short_ms ,
451451 const int start_time_ms ) {
452452
453- FileInfo * fi1 , * fi2 ;
453+ FileInfo * fi1 = NULL ;
454+ FileInfo * fi2 = NULL ;
455+ FileInfo * fi1_full = NULL ;
456+ FileInfo * fi2_full = NULL ;
454457 int max_shift_samples ;
455458 int err = 0 ;
456459 ProgressContext pctx ;
@@ -461,29 +464,14 @@ int ms_audio_compare_silence_and_speech(const char *ref_file,
461464 * ret = 0 ;
462465
463466 fi1 = file_info_new (ref_file );
464- if (fi1 == NULL ) return 0 ;
467+ if (fi1 == NULL ) {
468+ err = -1 ;
469+ goto end ;
470+ }
465471 fi2 = file_info_new (matched_file );
466472 if (fi2 == NULL ) {
467- file_info_destroy (fi1 );
468- return -1 ;
469- }
470-
471- FileInfo * fi1_short , * fi2_short ;
472- fi1_short = file_info_new (ref_file );
473- if (fi1_short == NULL ) return 0 ;
474- fi2_short = file_info_new (matched_file );
475- if (fi2_short == NULL ) {
476- file_info_destroy (fi1_short );
477- return -1 ;
478- }
479-
480- FileInfo * fi1_full , * fi2_full ;
481- fi1_full = file_info_new (ref_file );
482- if (fi1_full == NULL ) return 0 ;
483- fi2_full = file_info_new (matched_file );
484- if (fi2_full == NULL ) {
485- file_info_destroy (fi1_full );
486- return -1 ;
473+ err = -1 ;
474+ goto end ;
487475 }
488476
489477 if (fi1 -> rate != fi2 -> rate ) {
@@ -551,6 +539,16 @@ int ms_audio_compare_silence_and_speech(const char *ref_file,
551539 zero_pad_sample_fi1 = - maxpos ;
552540 zero_pad_sample_fi2 = 0 ;
553541 }
542+ fi1_full = file_info_new (ref_file );
543+ if (fi1_full == NULL ) {
544+ err = -1 ;
545+ goto end ;
546+ }
547+ fi2_full = file_info_new (matched_file );
548+ if (fi2_full == NULL ) {
549+ err = -1 ;
550+ goto end ;
551+ }
554552 int start_sample = (int )(start_time_ms / 1000. * (double )fi1 -> rate );
555553 int size_samples_1 = fi1_full -> nsamples - (int )(start_time_ms / 1000. * (double )fi1 -> rate );
556554 int size_samples_2 = fi2_full -> nsamples - (int )(start_time_ms / 1000. * (double )fi2 -> rate );
@@ -572,8 +570,6 @@ int ms_audio_compare_silence_and_speech(const char *ref_file,
572570end :
573571 file_info_destroy (fi1 );
574572 file_info_destroy (fi2 );
575- file_info_destroy (fi1_short );
576- file_info_destroy (fi2_short );
577573 file_info_destroy (fi1_full );
578574 file_info_destroy (fi2_full );
579575 return err ;
0 commit comments