Commit c36f6582 authored by Jean-Paul Saman's avatar Jean-Paul Saman

Fix memleaks and some cleanup.

parent ddada0ed
...@@ -65,7 +65,8 @@ osd_menu_t *__osd_MenuCreate( vlc_object_t *p_this, const char *psz_file ) ...@@ -65,7 +65,8 @@ osd_menu_t *__osd_MenuCreate( vlc_object_t *p_this, const char *psz_file )
var_Get( p_this->p_libvlc, "osd_mutex", &lockval ); var_Get( p_this->p_libvlc, "osd_mutex", &lockval );
vlc_mutex_lock( lockval.p_address ); vlc_mutex_lock( lockval.p_address );
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
vlc_value_t val; vlc_value_t val;
...@@ -88,11 +89,14 @@ osd_menu_t *__osd_MenuCreate( vlc_object_t *p_this, const char *psz_file ) ...@@ -88,11 +89,14 @@ osd_menu_t *__osd_MenuCreate( vlc_object_t *p_this, const char *psz_file )
p_osd->i_width = p_osd->p_state->p_visible->p_current_state->p_pic->p[Y_PLANE].i_visible_pitch; p_osd->i_width = p_osd->p_state->p_visible->p_current_state->p_pic->p[Y_PLANE].i_visible_pitch;
p_osd->i_height = p_osd->p_state->p_visible->p_current_state->p_pic->p[Y_PLANE].i_visible_lines; p_osd->i_height = p_osd->p_state->p_visible->p_current_state->p_pic->p[Y_PLANE].i_visible_lines;
if( p_osd->p_state->p_volume )
{
/* Update the volume state images to match the current volume */ /* Update the volume state images to match the current volume */
i_volume = config_GetInt( p_this, "volume" ); i_volume = config_GetInt( p_this, "volume" );
i_steps = osd_VolumeStep( p_this, i_volume, p_osd->p_state->p_volume->i_ranges ); i_steps = osd_VolumeStep( p_this, i_volume, p_osd->p_state->p_volume->i_ranges );
p_osd->p_state->p_volume->p_current_state = osd_VolumeStateChange( p_osd->p_state->p_volume->p_states, i_steps ); p_osd->p_state->p_volume->p_current_state = osd_VolumeStateChange(
p_osd->p_state->p_volume->p_states, i_steps );
}
/* Initialize OSD state */ /* Initialize OSD state */
osd_UpdateState( p_osd->p_state, p_osd->i_x, p_osd->i_y, osd_UpdateState( p_osd->p_state, p_osd->i_x, p_osd->i_y,
p_osd->i_width, p_osd->i_height, NULL ); p_osd->i_width, p_osd->i_height, NULL );
...@@ -198,7 +202,8 @@ void __osd_MenuShow( vlc_object_t *p_this ) ...@@ -198,7 +202,8 @@ void __osd_MenuShow( vlc_object_t *p_this )
osd_button_t *p_button = NULL; osd_button_t *p_button = NULL;
vlc_value_t lockval; vlc_value_t lockval;
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
msg_Err( p_this, "osd_MenuNext failed" ); msg_Err( p_this, "osd_MenuNext failed" );
return; return;
...@@ -239,7 +244,8 @@ void __osd_MenuHide( vlc_object_t *p_this ) ...@@ -239,7 +244,8 @@ void __osd_MenuHide( vlc_object_t *p_this )
osd_menu_t *p_osd = NULL; osd_menu_t *p_osd = NULL;
vlc_value_t lockval; vlc_value_t lockval;
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
msg_Err( p_this, "osd_MenuNext failed" ); msg_Err( p_this, "osd_MenuNext failed" );
return; return;
...@@ -266,7 +272,8 @@ void __osd_MenuActivate( vlc_object_t *p_this ) ...@@ -266,7 +272,8 @@ void __osd_MenuActivate( vlc_object_t *p_this )
osd_button_t *p_button = NULL; osd_button_t *p_button = NULL;
vlc_value_t lockval; vlc_value_t lockval;
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
msg_Err( p_this, "osd_MenuNext failed" ); msg_Err( p_this, "osd_MenuNext failed" );
return; return;
...@@ -328,7 +335,8 @@ void __osd_MenuNext( vlc_object_t *p_this ) ...@@ -328,7 +335,8 @@ void __osd_MenuNext( vlc_object_t *p_this )
osd_button_t *p_button = NULL; osd_button_t *p_button = NULL;
vlc_value_t lockval; vlc_value_t lockval;
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
msg_Err( p_this, "osd_MenuNext failed" ); msg_Err( p_this, "osd_MenuNext failed" );
return; return;
...@@ -378,7 +386,8 @@ void __osd_MenuPrev( vlc_object_t *p_this ) ...@@ -378,7 +386,8 @@ void __osd_MenuPrev( vlc_object_t *p_this )
osd_button_t *p_button = NULL; osd_button_t *p_button = NULL;
vlc_value_t lockval; vlc_value_t lockval;
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
msg_Err( p_this, "osd_MenuPrev failed" ); msg_Err( p_this, "osd_MenuPrev failed" );
return; return;
...@@ -430,8 +439,8 @@ void __osd_MenuUp( vlc_object_t *p_this ) ...@@ -430,8 +439,8 @@ void __osd_MenuUp( vlc_object_t *p_this )
#if defined(OSD_MENU_DEBUG) #if defined(OSD_MENU_DEBUG)
vlc_value_t val; vlc_value_t val;
#endif #endif
p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) if( p_osd == NULL )
{ {
msg_Err( p_this, "osd_MenuDown failed" ); msg_Err( p_this, "osd_MenuDown failed" );
return; return;
...@@ -502,7 +511,8 @@ void __osd_MenuDown( vlc_object_t *p_this ) ...@@ -502,7 +511,8 @@ void __osd_MenuDown( vlc_object_t *p_this )
vlc_value_t val; vlc_value_t val;
#endif #endif
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
msg_Err( p_this, "osd_MenuDown failed" ); msg_Err( p_this, "osd_MenuDown failed" );
return; return;
...@@ -587,12 +597,15 @@ void __osd_Volume( vlc_object_t *p_this ) ...@@ -587,12 +597,15 @@ void __osd_Volume( vlc_object_t *p_this )
int i_volume = 0; int i_volume = 0;
int i_steps = 0; int i_steps = 0;
if( ( p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE ) ) == NULL ) p_osd = vlc_object_find( p_this, VLC_OBJECT_OSDMENU, FIND_ANYWHERE );
if( p_osd == NULL )
{ {
msg_Err( p_this, "OSD menu volume update failed" ); msg_Err( p_this, "OSD menu volume update failed" );
return; return;
} }
if( p_osd->p_state && p_osd->p_state->p_volume )
{
var_Get( p_this->p_libvlc, "osd_mutex", &lockval ); var_Get( p_this->p_libvlc, "osd_mutex", &lockval );
vlc_mutex_lock( lockval.p_address ); vlc_mutex_lock( lockval.p_address );
...@@ -616,4 +629,5 @@ void __osd_Volume( vlc_object_t *p_this ) ...@@ -616,4 +629,5 @@ void __osd_Volume( vlc_object_t *p_this )
} }
vlc_object_release( (vlc_object_t*) p_osd ); vlc_object_release( (vlc_object_t*) p_osd );
vlc_mutex_unlock( lockval.p_address ); vlc_mutex_unlock( lockval.p_address );
}
} }
...@@ -88,8 +88,12 @@ static osd_menu_t *osd_MenuNew( osd_menu_t *p_menu, const char *psz_path, int i_ ...@@ -88,8 +88,12 @@ static osd_menu_t *osd_MenuNew( osd_menu_t *p_menu, const char *psz_path, int i_
p_menu->p_state = (osd_menu_state_t *) malloc( sizeof( osd_menu_state_t ) ); p_menu->p_state = (osd_menu_state_t *) malloc( sizeof( osd_menu_state_t ) );
if( !p_menu->p_state ) if( !p_menu->p_state )
{
msg_Err( p_menu, "Memory allocation for OSD Menu state failed" ); msg_Err( p_menu, "Memory allocation for OSD Menu state failed" );
return NULL;
}
memset(p_menu->p_state, 0, sizeof(osd_menu_state_t));
if( psz_path != NULL ) if( psz_path != NULL )
p_menu->psz_path = strdup( psz_path ); p_menu->psz_path = strdup( psz_path );
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment