[vlc-devel] commit: TriggerCallback: factor condition ( Rémi Denis-Courmont )

git version control git at videolan.org
Sun Jan 3 18:21:59 CET 2010


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Jan  3 18:11:50 2010 +0200| [33755a284d32c38d6f1931c6972dce3dd9b6224c] | committer: Rémi Denis-Courmont 

TriggerCallback: factor condition

Note that we do keep the condition to avoid a pointless pair of
mutex unlock/lock.

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

 src/misc/variables.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/src/misc/variables.c b/src/misc/variables.c
index 84ebbe8..b4f3230 100644
--- a/src/misc/variables.c
+++ b/src/misc/variables.c
@@ -644,7 +644,7 @@ int __var_GetAndSet( vlc_object_t *p_this, const char *psz_name, int i_action,
                      vlc_value_t val )
 {
     int i_var;
-    int i_ret = VLC_SUCCESS;
+    int i_ret;
     variable_t *p_var;
     vlc_value_t oldval;
 
@@ -688,8 +688,7 @@ int __var_GetAndSet( vlc_object_t *p_this, const char *psz_name, int i_action,
     CheckValue( p_var, &p_var->val );
 
     /* Deal with callbacks.*/
-    if( p_var->i_entries )
-        i_ret = TriggerCallback( p_this, p_var, psz_name, oldval );
+    i_ret = TriggerCallback( p_this, p_var, psz_name, oldval );
 
     vlc_mutex_unlock( &p_priv->var_lock );
 
@@ -767,8 +766,7 @@ int var_SetChecked( vlc_object_t *p_this, const char *psz_name,
     p_var->val = val;
 
     /* Deal with callbacks */
-    if( p_var->i_entries )
-        i_ret = TriggerCallback( p_this, p_var, psz_name, oldval );
+    i_ret = TriggerCallback( p_this, p_var, psz_name, oldval );
 
     /* Free data if needed */
     p_var->ops->pf_free( &oldval );
@@ -967,7 +965,7 @@ int __var_DelCallback( vlc_object_t *p_this, const char *psz_name,
 int __var_TriggerCallback( vlc_object_t *p_this, const char *psz_name )
 {
     int i_var;
-    int i_ret = VLC_SUCCESS;
+    int i_ret;
     variable_t *p_var;
 
     assert( p_this );
@@ -987,8 +985,7 @@ int __var_TriggerCallback( vlc_object_t *p_this, const char *psz_name )
 
     /* Deal with callbacks. Tell we're in a callback, release the lock,
      * call stored functions, retake the lock. */
-    if( p_var->i_entries )
-        i_ret = TriggerCallback( p_this, p_var, psz_name, p_var->val );
+    i_ret = TriggerCallback( p_this, p_var, psz_name, p_var->val );
 
     vlc_mutex_unlock( &p_priv->var_lock );
     return i_ret;
@@ -1458,11 +1455,13 @@ int var_Inherit( vlc_object_t *p_this, const char *psz_name, int i_type,
 static int TriggerCallback( vlc_object_t *p_this, variable_t *p_var,
                             const char *psz_name, vlc_value_t oldval )
 {
-    int i_entries = p_var->i_entries;
-    callback_entry_t *p_entries = p_var->p_entries;
-
     assert( p_this );
 
+    int i_entries = p_var->i_entries;
+    if( i_entries == 0 )
+        return VLC_SUCCESS;
+
+    callback_entry_t *p_entries = p_var->p_entries;
     vlc_object_internals_t *p_priv = vlc_internals( p_this );
 
     p_var->b_incallback = true;




More information about the vlc-devel mailing list