From 9998c1ec1c162bece8b094d04e9e9ee7bed3fd01 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sat, 18 Aug 2007 04:21:36 +0000 Subject: [PATCH] vlc_input.h: Fix funman's commit. --- include/vlc_input.h | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/include/vlc_input.h b/include/vlc_input.h index 12aaa91d0d..90d7ab6d50 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -221,11 +221,12 @@ static inline void input_ItemClean( input_item_t *p_i ) static inline void input_item_SetMeta( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz_val ) { vlc_event_t event; - vlc_mutex_lock( &p_i->p_lock ); + + vlc_mutex_lock( &p_i->lock ); if( !p_i->p_meta ) p_i->p_meta = vlc_meta_New(); vlc_meta_Set( p_i->p_meta, meta_type, psz_val ); - vlc_mutex_unlock( &p_i->p_lock ); + vlc_mutex_unlock( &p_i->lock ); /* Notify interested third parties */ event.type = vlc_InputItemMetaChanged; @@ -235,22 +236,27 @@ static inline void input_item_SetMeta( input_item_t *p_i, vlc_meta_type_t meta_t static inline char * input_item_GetMeta( input_item_t *p_i, vlc_meta_type_t meta_type ) { - vlc_mutex_lock( &p_i->p_lock ); + char * psz = NULL; + vlc_mutex_lock( &p_i->lock ); + if( !p_i->p_meta ) { - vlc_mutex_unlock( &p_i->p_lock ); + vlc_mutex_unlock( &p_i->lock ); return NULL; } - char *psz_s = strdup( vlc_meta_Get( p_i->p_meta, meta_type ) ); - vlc_mutex_unlock( &p_i->p_lock ); - return psz_s; + + if( vlc_meta_Get( p_i->p_meta, meta_type ) ) + psz = strdup( vlc_meta_Get( p_i->p_meta, meta_type ) ); + + vlc_mutex_unlock( &p_i->lock ); + return psz; } static inline char * input_item_GetName( input_item_t *p_i ) { - vlc_mutex_lock( &p_i->p_lock ); - char *psz_s = strdup( p_i->psz_name ); - vlc_mutex_unlock( &p_i->p_lock ); + vlc_mutex_lock( &p_i->lock ); + char *psz_s = p_i->psz_name ? strdup( p_i->psz_name ) : NULL; + vlc_mutex_unlock( &p_i->lock ); return psz_s; } -- 2.39.2