vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu Jun 18 00:08:35 2015 +0300| [167d5d5d445fc27753ddc41bb8d82adcbfb25456] | committer: Rémi Denis-Courmont
lib: fix pointer misused as integer and simplify > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=167d5d5d445fc27753ddc41bb8d82adcbfb25456 --- lib/media_player.c | 50 ++++++++++++++++++-------------------------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/lib/media_player.c b/lib/media_player.c index f147e61..cc5c502 100644 --- a/lib/media_player.c +++ b/lib/media_player.c @@ -1340,57 +1340,43 @@ int libvlc_media_player_get_full_title_descriptions( libvlc_media_player_t *p_mi if( !p_input_thread ) return -1; - input_title_t **p_input_title = NULL; - int *i_titles = 0; + input_title_t **p_input_title; + int count; /* fetch data */ - int ret = input_Control(p_input_thread, INPUT_GET_FULL_TITLE_INFO, &p_input_title, &i_titles); + int ret = input_Control( p_input_thread, INPUT_GET_FULL_TITLE_INFO, + &p_input_title, &count ); vlc_object_release( p_input_thread ); - - if( ret != VLC_SUCCESS || p_input_title == NULL) - { + if( ret != VLC_SUCCESS ) return -1; - } - - if (i_titles == 0) - { - return 0; - } - const int ci_title_count = (const int)i_titles; - - *pp_titles = calloc( ci_title_count, sizeof(**pp_titles) ); - if( !*pp_titles ) - { + libvlc_title_description_t **titles = malloc( count * sizeof (*titles) ); + if( count > 0 && unlikely(titles == NULL) ) return -1; - } /* fill array */ - for( int i = 0; i < ci_title_count; i++) + for( int i = 0; i < count; i++) { - libvlc_title_description_t *p_title = malloc( sizeof(*p_title) ); - if( unlikely(p_title == NULL) ) + libvlc_title_description_t *title = malloc( sizeof (*title) ); + if( unlikely(title == NULL) ) { - libvlc_title_descriptions_release( *pp_titles, ci_title_count ); + libvlc_title_descriptions_release( titles, count ); return -1; } - (*pp_titles)[i] = p_title; + titles[i] = title; /* we want to return milliseconds to match the rest of the API */ - p_title->i_duration = p_input_title[i]->i_length / 1000; - p_title->b_menu = p_input_title[i]->b_menu; + title->i_duration = p_input_title[i]->i_length / 1000; + title->b_menu = p_input_title[i]->b_menu; if( p_input_title[i]->psz_name ) - { - p_title->psz_name = strdup( p_input_title[i]->psz_name ); - } + title->psz_name = strdup( p_input_title[i]->psz_name ); else - { - p_title->psz_name = NULL; - } + title->psz_name = NULL; vlc_input_title_Delete( p_input_title[i] ); } - return ci_title_count; + *pp_titles = titles; + return count; } void libvlc_title_descriptions_release( libvlc_title_description_t **p_titles, _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
