[vlc-commits] fingerprinter: don't test for thread value

Francois Cartegnie git at videolan.org
Sun Jul 24 22:47:14 CEST 2016


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Sun Jul 24 22:46:17 2016 +0200| [f0c6d315cbc9397e510940c590939d219008a5c1] | committer: Francois Cartegnie

fingerprinter: don't test for thread value

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f0c6d315cbc9397e510940c590939d219008a5c1
---

 modules/misc/fingerprinter.c |   19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/modules/misc/fingerprinter.c b/modules/misc/fingerprinter.c
index 80d1729..8de2ce0 100644
--- a/modules/misc/fingerprinter.c
+++ b/modules/misc/fingerprinter.c
@@ -61,6 +61,7 @@ struct fingerprinter_sys_t
 
 static int  Open            (vlc_object_t *);
 static void Close           (vlc_object_t *);
+static void CleanSys        (fingerprinter_sys_t *);
 static void *Run(void *);
 
 /*****************************************************************************
@@ -260,7 +261,8 @@ static int Open(vlc_object_t *p_this)
     return VLC_SUCCESS;
 
 error:
-    Close( p_this );
+    CleanSys( p_sys );
+    free( p_sys );
     return VLC_EGENERIC;
 }
 
@@ -272,12 +274,15 @@ static void Close(vlc_object_t *p_this)
     fingerprinter_thread_t   *p_fingerprinter = (fingerprinter_thread_t*) p_this;
     fingerprinter_sys_t *p_sys = p_fingerprinter->p_sys;
 
-    if( p_sys->thread )
-    {
-        vlc_cancel( p_sys->thread );
-        vlc_join( p_sys->thread, NULL );
-    }
+    vlc_cancel( p_sys->thread );
+    vlc_join( p_sys->thread, NULL );
 
+    CleanSys( p_sys );
+    free( p_sys );
+}
+
+static void CleanSys( fingerprinter_sys_t *p_sys )
+{
     for ( int i = 0; i < vlc_array_count( p_sys->incoming.queue ); i++ )
         fingerprint_request_Delete( vlc_array_item_at_index( p_sys->incoming.queue, i ) );
     vlc_array_destroy( p_sys->incoming.queue );
@@ -293,8 +298,6 @@ static void Close(vlc_object_t *p_this)
         fingerprint_request_Delete( vlc_array_item_at_index( p_sys->results.queue, i ) );
     vlc_array_destroy( p_sys->results.queue );
     vlc_mutex_destroy( &p_sys->results.lock );
-
-    free( p_sys );
 }
 
 static void fill_metas_with_results( fingerprint_request_t *p_r, acoustid_fingerprint_t *p_f )



More information about the vlc-commits mailing list