vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Aug 16 15:28:25 2014 +0300| [3c2c9364a1f0c9c34db661a22be6cb8b490dc0cb] | committer: Rémi Denis-Courmont
Handle NULL value in "input-current" callback > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3c2c9364a1f0c9c34db661a22be6cb8b490dc0cb --- modules/control/gestures.c | 8 ++++++-- modules/control/netsync.c | 20 ++++++++++++-------- modules/gui/skins2/src/vlcproc.cpp | 12 +++++++----- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/modules/control/gestures.c b/modules/control/gestures.c index d526971..a820b55 100644 --- a/modules/control/gestures.c +++ b/modules/control/gestures.c @@ -508,8 +508,12 @@ static int PlaylistEvent( vlc_object_t *p_this, char const *psz_var, (void) p_this; (void) psz_var; (void) oldval; - var_AddCallback( p_input, "intf-event", InputEvent, p_intf ); assert( p_sys->p_input == NULL ); - p_sys->p_input = vlc_object_hold( p_input ); + + if( p_input != NULL ) + { + var_AddCallback( p_input, "intf-event", InputEvent, p_intf ); + p_sys->p_input = vlc_object_hold( p_input ); + } return VLC_SUCCESS; } diff --git a/modules/control/netsync.c b/modules/control/netsync.c index 88bc429..2ced26b 100644 --- a/modules/control/netsync.c +++ b/modules/control/netsync.c @@ -289,17 +289,21 @@ static int PlaylistEvent(vlc_object_t *object, char const *cmd, VLC_UNUSED(cmd); VLC_UNUSED(oldval); VLC_UNUSED(object); intf_thread_t *intf = data; intf_sys_t *sys = intf->p_sys; - input_thread_t *input = newval.p_address; + assert(sys->input == NULL); - sys->input = vlc_object_hold(input); - if (vlc_clone(&sys->thread, sys->is_master ? Master : Slave, intf, - VLC_THREAD_PRIORITY_INPUT)) { - vlc_object_release(input); - sys->input = NULL; - return VLC_SUCCESS; + + if (input != NULL) + { + sys->input = vlc_object_hold(input); + if (vlc_clone(&sys->thread, sys->is_master ? Master : Slave, intf, + VLC_THREAD_PRIORITY_INPUT)) { + vlc_object_release(input); + sys->input = NULL; + return VLC_SUCCESS; + } + var_AddCallback(input, "intf-event", InputEvent, intf); } - var_AddCallback(input, "intf-event", InputEvent, intf); return VLC_SUCCESS; } diff --git a/modules/gui/skins2/src/vlcproc.cpp b/modules/gui/skins2/src/vlcproc.cpp index dcf3b30..7cf4882 100644 --- a/modules/gui/skins2/src/vlcproc.cpp +++ b/modules/gui/skins2/src/vlcproc.cpp @@ -227,11 +227,13 @@ int VlcProc::onInputNew( vlc_object_t *pObj, const char *pVariable, VlcProc *pThis = (VlcProc*)pParam; input_thread_t *pInput = static_cast<input_thread_t*>(newval.p_address); - var_AddCallback( pInput, "intf-event", onGenericCallback2, pThis ); - var_AddCallback( pInput, "bit-rate", onGenericCallback, pThis ); - var_AddCallback( pInput, "sample-rate", onGenericCallback, pThis ); - var_AddCallback( pInput, "can-record", onGenericCallback, pThis ); - + if( pInput != NULL ) + { + var_AddCallback( pInput, "intf-event", onGenericCallback2, pThis ); + var_AddCallback( pInput, "bit-rate", onGenericCallback, pThis ); + var_AddCallback( pInput, "sample-rate", onGenericCallback, pThis ); + var_AddCallback( pInput, "can-record", onGenericCallback, pThis ); + } return VLC_SUCCESS; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
