From: Laurent Aimar Date: Fri, 23 Mar 2007 19:49:21 +0000 (+0000) Subject: Added a c++ compatible TAB_APPEND_CPP X-Git-Tag: 0.9.0-test0~8055 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=28b7dd1a574efc776edcbe80cad6ae4ae0a82e2a;p=vlc Added a c++ compatible TAB_APPEND_CPP --- diff --git a/include/vlc_arrays.h b/include/vlc_arrays.h index f9634984dd..11a8de8fa6 100644 --- a/include/vlc_arrays.h +++ b/include/vlc_arrays.h @@ -86,16 +86,21 @@ (tab)= NULL; \ } while(0) -#define TAB_APPEND( count, tab, p ) \ +#define TAB_APPEND_CAST( cast, count, tab, p ) \ do { \ if( (count) > 0 ) \ - (tab) = realloc( tab, sizeof( void ** ) * ( (count) + 1 ) ); \ + (tab) = cast realloc( tab, sizeof( void ** ) * ( (count) + 1 ) ); \ else \ - (tab) = malloc( sizeof( void ** ) ); \ + (tab) = cast malloc( sizeof( void ** ) ); \ (tab)[count] = (p); \ (count)++; \ } while(0) +#define TAB_APPEND( count, tab, p ) \ + TAB_APPEND_CAST( , count, tab, p ) +#define TAB_APPEND_CPP( type, count, tab, p ) \ + TAB_APPEND_CAST( (type**), count, tab, p ) + #define TAB_FIND( count, tab, p, index ) \ do { \ int _i_; \ diff --git a/include/vlc_vlm.h b/include/vlc_vlm.h index e1bffe57e8..1ca38d5095 100644 --- a/include/vlc_vlm.h +++ b/include/vlc_vlm.h @@ -187,9 +187,9 @@ static inline void vlm_media_Copy( vlm_media_t *p_dst, vlm_media_t *p_src ) p_dst->psz_name = strdup( p_src->psz_name ); for( i = 0; i < p_src->i_input; i++ ) - TAB_APPEND( p_dst->i_input, p_dst->ppsz_input, strdup(p_src->ppsz_input[i]) ); + TAB_APPEND_CPP( char, p_dst->i_input, p_dst->ppsz_input, strdup(p_src->ppsz_input[i]) ); for( i = 0; i < p_src->i_option; i++ ) - TAB_APPEND( p_dst->i_option, p_dst->ppsz_option, strdup(p_src->ppsz_option[i]) ); + TAB_APPEND_CPP( char, p_dst->i_option, p_dst->ppsz_option, strdup(p_src->ppsz_option[i]) ); if( p_src->psz_output ) p_dst->psz_output = strdup( p_src->psz_output );