vlc | branch: master | Francois Cartegnie <[email protected]> | Fri Aug 17 18:05:46 2012 +0200| [6f435e8805274d1c52ad89893ee1121be35f2978] | committer: Francois Cartegnie
Qt: Ensure event IDs are not reused. Qt ensures event IDs are never reused by providing a way to register them dynamically. We have code that allocate event IDs statically and we need to check/register those then to ensure proper offset for dynamic ones. (we could just register them too, but this wouldn't allow switch/case through values) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6f435e8805274d1c52ad89893ee1121be35f2978 --- modules/gui/qt4/input_manager.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/gui/qt4/input_manager.cpp b/modules/gui/qt4/input_manager.cpp index c130098..45e555f 100644 --- a/modules/gui/qt4/input_manager.cpp +++ b/modules/gui/qt4/input_manager.cpp @@ -57,6 +57,12 @@ static int InputEvent( vlc_object_t *, const char *, static int VbiEvent( vlc_object_t *, const char *, vlc_value_t, vlc_value_t, void * ); +/* Ensure arbitratry (not dynamically allocated) event IDs are not in use */ +static inline void registerAndCheckEventIds( int start, int end ) +{ + for ( int i=start ; i<=end ; i++ ) + Q_ASSERT( QEvent::registerEventType( i ) == i ); /* event ID collision ! */ +} /********************************************************************** * InputManager implementation @@ -80,6 +86,8 @@ InputManager::InputManager( QObject *parent, intf_thread_t *_p_intf) : timeB = 0; f_cache = -1.; /* impossible initial value, different from all */ rateLimitedEventPoster = new RateLimitedEventPoster(); + registerAndCheckEventIds( IMEvent::PositionUpdate, IMEvent::FullscreenControlPlanHide ); + registerAndCheckEventIds( PLEvent::PLItemAppended, PLEvent::PLEmpty ); } InputManager::~InputManager() _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
