/**
* Simple dynamic array handling. Array is realloced at each insert/removal
*/
-#if defined( _MSC_VER ) && _MSC_VER < 1300 && !defined( UNDER_CE )
-# define VLCCVP (void**) /* Work-around for broken compiler */
-#else
-# define VLCCVP
-#endif
#define INSERT_ELEM( p_ar, i_oldsize, i_pos, elem ) \
do \
{ \
if( !(i_oldsize) ) (p_ar) = NULL; \
- (p_ar) = VLCCVP realloc( p_ar, ((i_oldsize) + 1) * sizeof(*(p_ar)) ); \
+ (p_ar) = realloc( p_ar, ((i_oldsize) + 1) * sizeof(*(p_ar)) ); \
if( !(p_ar) ) abort(); \
if( (i_oldsize) - (i_pos) ) \
{ \
#define TAB_APPEND( count, tab, p ) \
TAB_APPEND_CAST( , count, tab, p )
-#define TAB_FIND( count, tab, p, index ) \
+#define TAB_FIND( count, tab, p, idx ) \
do { \
- (index) = -1; \
- for( int i = 0; i < (count); i++ ) \
- if( (tab)[i] == (p) ) \
- { \
- (index) = i; \
+ for( (idx) = 0; (idx) < (count); (idx)++ ) \
+ if( (tab)[(idx)] == (p) ) \
break; \
- } \
+ if( (idx) >= (count) ) \
+ (idx) = -1; \
} while(0)
/* Internal functions */
#define _ARRAY_ALLOC(array, newsize) { \
(array).i_alloc = newsize; \
- (array).p_elems = VLCCVP realloc( (array).p_elems, (array).i_alloc * \
- sizeof(*(array).p_elems) ); \
+ (array).p_elems = realloc( (array).p_elems, (array).i_alloc * \
+ sizeof(*(array).p_elems) ); \
if( !(array).p_elems ) abort(); \
}
int i, count = vlc_dictionary_keys_count( p_dict );
ppsz_ret = (char**)malloc(sizeof(char *) * (count + 1));
+ if( unlikely(!ppsz_ret) )
+ return NULL;
count = 0;
for( i = 0; i < p_dict->i_size; i++ )