From a15af1b90a7ee88f76a1f67c1fdd13efe885a564 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sat, 5 Jul 2008 19:32:50 +0200 Subject: [PATCH] macosx: Make sure we don't leak an input_thread_t. --- modules/gui/macosx/intf.h | 3 --- modules/gui/macosx/intf.m | 15 +++++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h index 6fe248997e..3dbe618f44 100644 --- a/modules/gui/macosx/intf.h +++ b/modules/gui/macosx/intf.h @@ -67,9 +67,6 @@ struct intf_sys_t { NSAutoreleasePool * o_pool; - /* the current input */ - input_thread_t * p_input; - /* special actions */ bool b_mute; int i_play_status; diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index 639cf2786f..f2ee386328 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -1132,6 +1132,7 @@ static VLCMain *_o_sharedMainInstance = nil; - (void)manage { playlist_t * p_playlist; + input_thread_t * p_input = NULL; /* new thread requires a new pool */ NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init]; @@ -1153,25 +1154,25 @@ static VLCMain *_o_sharedMainInstance = nil; { vlc_mutex_lock( &p_intf->change_lock ); - if( p_intf->p_sys->p_input == NULL ) + if( !p_input ) { - p_intf->p_sys->p_input = playlist_CurrentInput( p_playlist ); + p_input = playlist_CurrentInput( p_playlist ); /* Refresh the interface */ - if( p_intf->p_sys->p_input ) + if( p_input ) { msg_Dbg( p_intf, "input has changed, refreshing interface" ); p_intf->p_sys->b_input_update = true; } } - else if( !vlc_object_alive (p_intf->p_sys->p_input) || p_intf->p_sys->p_input->b_dead ) + else if( !vlc_object_alive (p_input) || p_input->b_dead ) { /* input stopped */ p_intf->p_sys->b_intf_update = true; p_intf->p_sys->i_play_status = END_S; msg_Dbg( p_intf, "input has stopped, refreshing interface" ); - vlc_object_release( p_intf->p_sys->p_input ); - p_intf->p_sys->p_input = NULL; + vlc_object_release( p_input ); + p_input = NULL; } /* Manage volume status */ @@ -1184,6 +1185,8 @@ static VLCMain *_o_sharedMainInstance = nil; vlc_object_unlock( p_intf ); [o_pool release]; + if( p_input ) vlc_object_release( p_input ); + var_DelCallback( p_playlist, "playlist-current", PlaylistChanged, self ); var_DelCallback( p_playlist, "intf-change", PlaylistChanged, self ); var_DelCallback( p_playlist, "item-change", PlaylistChanged, self ); -- 2.39.2