vlc | branch: master | Romain Vimont <[email protected]> | Tue Aug 28 15:13:53 2018 +0200| [ce4e7b1af79ede26c9bf9f3bc48019a6ff775494] | committer: Jean-Baptiste Kempf
vlc_arrays: avoid variable shadowing warnings Make the variable name depend on "item" to avoid variable shadowing warnings for nested loops (even if this specific shadowing is harmless). See previous discussion: <https://mailman.videolan.org/pipermail/vlc-devel/2018-June/119489.html> Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ce4e7b1af79ede26c9bf9f3bc48019a6ff775494 --- include/vlc_arrays.h | 9 ++++++--- src/misc/events.c | 8 +++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/vlc_arrays.h b/include/vlc_arrays.h index e9cbc5daa6..0d6c2dd371 100644 --- a/include/vlc_arrays.h +++ b/include/vlc_arrays.h @@ -243,10 +243,13 @@ static inline void *realloc_or_free( void *p, size_t sz ) #define ARRAY_BSEARCH(array, elem, zetype, key, answer) \ BSEARCH( (array).p_elems, (array).i_size, elem, zetype, key, answer) +/* append ##item to index variable name to avoid variable shadowing warnings for + * nested loops */ #define ARRAY_FOREACH(item, array) \ - for (int fe_idx = 0; \ - fe_idx < (array).i_size && ((item) = (array).p_elems[fe_idx], 1); \ - ++fe_idx) + for (int array_index_##item = 0; \ + array_index_##item < (array).i_size && \ + ((item) = (array).p_elems[array_index_##item], 1); \ + ++array_index_##item) /************************************************************************ diff --git a/src/misc/events.c b/src/misc/events.c index bf0ed8828b..a2273d654f 100644 --- a/src/misc/events.c +++ b/src/misc/events.c @@ -149,19 +149,17 @@ void vlc_event_detach( vlc_event_manager_t *p_em, void *p_user_data ) { vlc_event_listeners_group_t *slot = &p_em->events[event_type]; - struct vlc_event_listener_t * listener; vlc_mutex_lock( &p_em->lock ); - ARRAY_FOREACH( listener, slot->listeners ) + for (int i = 0; i < slot->listeners.i_size; ++i) { + struct vlc_event_listener_t *listener = slot->listeners.p_elems[i]; if( listener->pf_callback == pf_callback && listener->p_user_data == p_user_data ) { /* that's our listener */ - ARRAY_REMOVE( slot->listeners, - fe_idx /* This comes from the macro (and that's why - I hate macro) */ ); + ARRAY_REMOVE( slot->listeners, i ); vlc_mutex_unlock( &p_em->lock ); free( listener ); return; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
