vlc | branch: master | Thomas Guillem <[email protected]> | Sat Feb 13 17:05:55 2016 +0100| [358f8f47907d9a187da441d6a199d96bca2f94f3] | committer: Thomas Guillem
input: constify input_SubtitleFileAdd And don't do a strdup when it's not necessary > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=358f8f47907d9a187da441d6a199d96bca2f94f3 --- src/input/input.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/input/input.c b/src/input/input.c index 9836b78..24032be 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -103,7 +103,7 @@ enum { }; static void input_SubtitleAdd( input_thread_t *, const char *, unsigned ); -static void input_SubtitleFileAdd( input_thread_t *, char *, unsigned ); +static void input_SubtitleFileAdd( input_thread_t *, const char *, unsigned ); static void input_ChangeState( input_thread_t *p_input, int i_state ); /* TODO fix name */ #undef input_Create @@ -2811,32 +2811,34 @@ static void input_SubtitleAdd( input_thread_t *p_input, var_FreeList( &list, NULL ); } -static void input_SubtitleFileAdd( input_thread_t *p_input, char *psz_subtitle, - unsigned i_flags ) +static void input_SubtitleFileAdd( input_thread_t *p_input, + const char *psz_subtitle, unsigned i_flags ) { /* if we are provided a subtitle.sub file, * see if we don't have a subtitle.idx and use it instead */ - char *psz_path = strdup( psz_subtitle ); - if( likely(psz_path != NULL) ) + char *psz_idxpath = NULL; + char *psz_extension = strrchr( psz_subtitle, '.'); + if( psz_extension && strcmp( psz_extension, ".sub" ) == 0 ) { - char *psz_extension = strrchr( psz_path, '.'); - if( psz_extension && strcmp( psz_extension, ".sub" ) == 0 ) + psz_idxpath = strdup( psz_subtitle ); + if( psz_idxpath ) { struct stat st; + psz_extension = psz_extension - psz_subtitle + psz_idxpath; strcpy( psz_extension, ".idx" ); - if( !vlc_stat( psz_path, &st ) && S_ISREG( st.st_mode ) ) + if( !vlc_stat( psz_idxpath, &st ) && S_ISREG( st.st_mode ) ) { msg_Dbg( p_input, "using %s as subtitle file instead of %s", - psz_path, psz_subtitle ); - strcpy( psz_subtitle, psz_path ); /* <- FIXME! constify */ + psz_idxpath, psz_subtitle ); + psz_subtitle = psz_idxpath; } } - free( psz_path ); } char *url = vlc_path2uri( psz_subtitle, NULL ); + free( psz_idxpath ); if( url == NULL ) return; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
