[vlc-devel] commit: Fix memleak and use var_Get(Integer|String|...) when possible ( easier to find bugs). ( Rémi Duraffort )
git version control
git at videolan.org
Thu Apr 2 19:05:27 CEST 2009
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Thu Apr 2 18:58:50 2009 +0200| [95b2a344107268faf3d9d3515b90255afb737d00] | committer: Rémi Duraffort
Fix memleak and use var_Get(Integer|String|...) when possible (easier to find bugs).
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=95b2a344107268faf3d9d3515b90255afb737d00
---
src/video_output/video_output.c | 25 +++++++++----------------
1 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 40f65b5..4677358 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -181,17 +181,13 @@ vout_thread_t *__vout_Request( vlc_object_t *p_this, vout_thread_t *p_vout,
/* If we now have a video output, check it has the right properties */
if( p_vout )
{
- char *psz_filter_chain;
- vlc_value_t val;
-
vlc_mutex_lock( &p_vout->change_lock );
/* We don't directly check for the "vout-filter" variable for obvious
* performance reasons. */
if( p_vout->p->b_filter_change )
{
- var_Get( p_vout, "vout-filter", &val );
- psz_filter_chain = val.psz_string;
+ char *psz_filter_chain = var_GetString( p_vout, "vout-filter" );
if( psz_filter_chain && !*psz_filter_chain )
{
@@ -302,7 +298,7 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt )
{
vout_thread_t * p_vout; /* thread descriptor */
int i_index; /* loop variable */
- vlc_value_t val, text;
+ vlc_value_t text;
unsigned int i_width = p_fmt->i_width;
unsigned int i_height = p_fmt->i_height;
@@ -475,9 +471,7 @@ vout_thread_t * __vout_Create( vlc_object_t *p_parent, video_format_t *p_fmt )
/* Choose the video output module */
if( !p_vout->p->psz_filter_chain || !*p_vout->p->psz_filter_chain )
{
- var_Create( p_vout, "vout", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
- var_Get( p_vout, "vout", &val );
- psz_parser = val.psz_string;
+ psz_parser = var_CreateGetString( p_vout, "vout" );
}
else
{
@@ -1682,7 +1676,6 @@ static int FilterCallback( vlc_object_t *p_this, char const *psz_cmd,
{
vout_thread_t *p_vout = (vout_thread_t *)p_this;
input_thread_t *p_input;
- vlc_value_t val;
(void)psz_cmd; (void)oldval; (void)p_data;
p_input = (input_thread_t *)vlc_object_find( p_this, VLC_OBJECT_INPUT,
@@ -1690,17 +1683,14 @@ static int FilterCallback( vlc_object_t *p_this, char const *psz_cmd,
if (!p_input)
{
msg_Err( p_vout, "Input not found" );
- return( VLC_EGENERIC );
+ return VLC_EGENERIC;
}
- val.b_bool = true;
- var_Set( p_vout, "intf-change", val );
+ var_SetBool( p_vout, "intf-change", true );
/* Modify input as well because the vout might have to be restarted */
- val.psz_string = newval.psz_string;
var_Create( p_input, "vout-filter", VLC_VAR_STRING );
-
- var_Set( p_input, "vout-filter", val );
+ var_SetString( p_input, "vout-filter", newval.psz_string );
/* Now restart current video stream */
input_Control( p_input, INPUT_RESTART_ES, -VIDEO_ES );
@@ -1775,7 +1765,10 @@ static int PostProcessCallback( vlc_object_t *p_this, char const *psz_cmd,
}
}
if( psz_vf2 )
+ {
var_SetString( p_vout, "video-filter", psz_vf2 );
+ free( psz_vf2 );
+ }
return VLC_SUCCESS;
}
More information about the vlc-devel
mailing list